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

原文地址:https://www.cnblogs.com/liangshian/p/11251043.html