我试图更新一个网站flask用户有帐户,并能够登录。如果超过10分钟没有活动,我想让用户会话过期并注销,并将用户重定向到登录页面。
我想在@app.before_request
中更新它,下面是我的代码。我如何检查登录时间,检查是否没有活动,然后注销。
@app.before_request
def look_for_user(user=None):
g.usr = {}
g.api = False
if user:
g.usr = user
if 'user_id' in session:
g.usr = get_user((session['user_id'])) //from db
if not g.usr:
g.usr = {}
if not g.usr:
if request.url_rule:
if request.url_rule.rule not in app.config['LOGIN_NOT_REQUIRED']:
session['postlogin_landing_page'] = request.path
if g.api:
return jsonify(error=True, error_message='Invalid Login/Token')
else:
return redirect(app.config['LOGIN_URL'])
elif 'login_page' in session and request.url_rule:
if request.url_rule.rule not in app.config:
landing_page = session.pop('login_page')
return redirect(landing_page)
您可以使用本问题中描述的permanent_session_lifetime
和session.modified
标志。
请注意,会话默认情况下不是永久的,需要使用session.permanent = True
激活,如本回答中所述。
解决您的问题,为此您必须导入datetime。timedelta图书馆
session.permanent = True
app.permanent_session_lifetime = timedelta(seconds=3)
session.modified = True