在Flask&中删除会话cookie烧瓶登录

时间:2017-12-14 18:32:14

标签: python cookies flask flask-login

我们要求客户要求用户必须对每个会话进行身份验证。

如果用户选择“在启动时重新打开最后一个标签”,那么会话cookie应该可以解决问题(毕竟这是他们的意思),但Chrome,Firefox和Safari will persist这些会话Cookie他们的浏览器选项。

我们的客户不喜欢这样,我们希望我们只是快速过期,比如30分钟(该网站不适合长期使用)。

我可以通过Flask-Login设置“记住”cookie,但问题是即使我这样做,Flask-Login 仍在设置会话cookie ,这意味着即使在永久cookie过期,会话一保留,用户仍然认证。

如何首先完全禁用会话cookie?

1 个答案:

答案 0 :(得分:2)

您最好的选择是在服务器端处理此问题,因为正如您所指出的那样,您无法100%控制客户端的Cookie行为。

基本上,您希望更改user_loader回调函数以检查用户的活动(无论是上次查看时还是上次登录时)。

例如:

@lm.user_loader
def load_user(id):

    user = User.query.get(id)

    if not user:
        return None

    minutes = 30

    if user.last_seen < (datetime.utcnow() - timedelta(minutes=minutes)):
        # Session has timed out
        return None

    return user