flask-login,用户在关闭浏览器后,在打开浏览器,用户还是在登录状态。

我用的是flask-login,在用户未退出的情况下关闭浏览器后,再打开浏览器,输入系统地址,用户还是在登录状态,@login_required并没有起作用,这是为什么?

还有,在关闭当前登录后的系统标签页,新建标签页,输入系统地址用户还是登陆状态,按照文档使用@fresh_login_required会跳转到登录页面,但是并没有,这又是为是么呢?

还有怎样才能设置会话超时呢?

求大神指导!!!!

阅读 9.3k
2 个回答

1.第一个问题,你可能用了“记住我”功能login_user(user,remember=True),一个 cookie 就会存储在用户的电脑上,再次访问,Flask-Login 会自动从那个 cookie 上恢复用户 ID。用户处于登录状态,@login_required自然就会通过。

2.第二个问题,要区分什么叫“用户活跃”官方文档说得很清楚了

当用户登入,他们的会话被标记为“活跃”,这表明他们确实在那个会话中通过验证。
当他们的会话被销毁且他们使用“记住我”,用cookie重新登入,它会被标记为“非活跃”。 login_required 并不区分这两种状态,这对于大多数页面已经足够了。
但像更改某人的个人信息这样的敏感操作应需要一个活跃的登入。(像修改密码这样的操作总是需要密码,无论是否重登入。)fresh_login_required,除验证用户登入外,也会确保用户的登入是活跃的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进