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的时效

  • 相关阅读:
    Spring学习笔记
    deepin linux 下C开发环境配置
    deepin linux 15.3安装完eclipse启动报错An error has occurred.
    windows下安装vundle
    Tomcat 改服务器编码(Java 修改字符串编码格式)
    servlet request getQueryString 汉字的URI编码如何转码
    servlet request
    servlet awt随机图片验证码
    java获取unicode码
    技术总监
  • 原文地址:https://www.cnblogs.com/liangshian/p/11251043.html
Copyright © 2011-2022 走看看