zoukankan      html  css  js  c++  java
  • flask中利用session实现用户记住密码

    “记住密码”的实质,实际上就是把cookie的有效期设置的长一点,当用户没有选择记住密码时,cookie的有效期为会话结束,选择记住密码后,会根据服务器的设置延长cookie的有效期,默认是31天。在flask框架中,服务器不会保存用户的会话,而是把会话加秘后放在cookie里面返回给用户。所以,可以通过在session中放置一个标识用户的字段,实现服务器记住用户的功能。

    0x01:前端登陆页面

    这是一个简单的前台登陆页面,在账号密码的下面用户可选择是否记住密码,实质上,它就是一个input标签,类型是check的复选框类型,它有被开发人员设置了一个默认值,如果用户没有勾选‘记住登录名’,则这个input标签里面就没有值,为None,如果用户勾选的‘记住登录名’,则这个input标签里面的值就为设置的默认值

    0x02:后台HTML代码

    1             <div id="remember">
    2                 <span style="margin-left: 10px; color: green"><input type="checkbox" name="remember" value="1">记住登录名</span>
    3                 <a href="{{ url_for('forget') }}" style="float: right;margin-top:1px">忘记密码?</a>
    4             </div>

    第二行的input标签就是‘记住登录名’这一部分了,它的默认值是‘1’,input的名字是remember,如果用户没有选择‘记住登录名’,则remember为none,若勾选了,就把‘1’赋值给remember

    0x03:服务器端设置cookie时效

    1 if remember == '1':
    2     session.permanent = True
    3     session['user_id'] = user.id
    4     return redirect(url_for('index'))
    5 else:
    6     session['user_id'] = user.id
    7     return redirect(url_for('index'))

    第一行,我们通过remember的值判断用户是否勾选的‘记住登录名’,人后根据这两种情况分别设置cookie的时效

  • 相关阅读:
    sed点滴
    JS中使用window.open("url?param="+paramvalue)传递参数出现乱码
    java算法之插入排序法
    NodeJS中的事件模块EventEmitter
    转载: 通过Object.prototype.toString 精确判断对象的类型
    CommonJS的模块规范
    Windows Store App之文件选择器、文件保存器和文件夹选择器
    vue日期格式化
    Linux下安装Apache
    ubuntu 安装 ES 以及集群的搭建
  • 原文地址:https://www.cnblogs.com/liangshian/p/11251043.html
Copyright © 2011-2022 走看看