尝试稍微调整我的用户登录系统。使用默认的烧瓶会话。我有一个需要登录的区域(/ 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
答案 0 :(得分:1)
“如果我点击一下就会立即踢我”。如果您点击左右,您的会话过期时间将设置为30分钟,因为:
@app.before_request
def make_session_permanent():
@app.before_request
广泛应用。
您可以使用Blueprint
前缀_url是'/ dashboard'并使用
@blueprint.before_request
代替。 然后,只有此蓝图下的请求才能更新到期时间。