如何添加会话超时,但保持会话活动与烧瓶中的用户活动?

时间:2016-12-22 08:05:07

标签: python session flask

尝试稍微调整我的用户登录系统。使用默认的烧瓶会话。我有一个需要登录的区域(/ dashboard /下的所有页面 - 但用户也可以在全站点登录)。我希望能够在30分钟之后结束用户会话,并且在会话结束时,闪烁一条消息"您已经注销不活动"。但如果用户在该期间结束前点击,请保持会话活动直到30分钟过去。我得到一些奇怪的行为,即如果我点击周围它立即踢我。事情肯定是错的。我从这里开始关注两个问题 - 试图将这两个特征结合起来:

Is there an easy way to make sessions timeout in flask?

@app.before_request
def make_session_permanent():
    session.modified = True        
    session.permanent = True
    app.permanent_session_lifetime = timedelta(minutes=2)
    #flash("You have been logged out for inactivity.")

编辑:登录行为正常,但时间限制仍无效,会话永远存在。怀疑用户活动是否保持会话活着。继承了我的登录注册系统,蓝图,仪表板等的整个代码。我没有看到什么是错的。无论我尝试什么,我的会话仍然持续无限。 https://dpaste.de/vonL

1 个答案:

答案 0 :(得分:1)

“如果我点击一下就会立即踢我”。如果您点击左右,您的会话过期时间将设置为30分钟,因为:

@app.before_request
def make_session_permanent():

@app.before_request广泛应用。

您可以使用Blueprint前缀_url是'/ dashboard'并使用

@blueprint.before_request

代替。 然后,只有此蓝图下的请求才能更新到期时间。