我正在尝试使用 Flask 更新一个网站,其中用户拥有帐户并且能够登录。如果超过 10 分钟没有任何事件,我想让用户 session 过期并注销,并将用户重定向到登录页面。
我想在@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
标志,如 this question 中所述。 .
请注意,默认情况下 session 不是永久的,需要使用 session.permanent = True
激活,如 this answer 中所述。 .
关于python - 如果 session 因无事件而过期,则注销并重定向到登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39718259/