flask-login:Chrome忽略cookie过期?

时间:2012-12-12 01:16:45

标签: python web-applications python-2.7 flask flask-login

我已经使用flask-login进行身份验证,但似乎无论我在烧瓶中使用cookie的持续时间,会话仍然是经过身份验证的。我是否为flask-login正确设置了配置变量?我试过了

app.REMEMBER_COOKIE_DURATION = datetime.timedelta(seconds=30)
app.config["REMEMBER_COOKIE_DURATION"] = datetime.timedelta(seconds=30)

即使我关闭浏览器,等待一段时间,然后点击应该受到保护的网址,我仍然可以访问它。这与this issue with chrome?有关。如果我清除我的cookie,我会得到预期的登录页面。所有这些让我觉得cookie超时没有得到尊重。

此外,PERMANENT_SESSION_LIFETIME在烧瓶中做了什么?

1 个答案:

答案 0 :(得分:18)

REMEMBER_COOKIE_DURATION用于“记住我”功能,即即使关闭浏览器也要记住登录用户的时间。单独的cookie用于此,其名称可以由REMEMBER_COOKIE_NAME设置(默认情况下为remember_token)。要强制登录会话在一段时间后过期(即使浏览器仍在运行),请将PERMANENT_SESSION_LIFETIME设置在您保留应用设置的位置:

PERMANENT_SESSION_LIFETIME = datetime.timedelta(minutes=30)

在您的登录视图集session.permanent = True

from flask import session

@app.route('/login')
def login():
    # ...
    if login_user(user):
        session.permanent = True
        return redirect(request.args.get('next') or url_for('index'))
    # ...
相关问题