10

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

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

即使我关闭浏览器,稍等片刻,然后点击应该保护的 url,我仍然可以访问它。这与chrome的这个问题有关吗?. 如果我清除我的 cookie,我会得到预期的登录页面。这一切让我觉得 cookie 超时没有得到尊重。

另外,PERMANENT_SESSION_LIFETIME烧瓶中的作用是什么?

4

1 回答 1

19

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'))
    # ...
于 2012-12-12T12:19:18.997 回答