python - 如果 session 因无事件而过期,则注销并重定向到登录页面

标签 python redirect flask logout expired-sessions

我正在尝试使用 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_lifetimesession.modified 标志,如 this question 中所述。 .

请注意,默认情况下 session 不是永久的,需要使用 session.permanent = True 激活,如 this answer 中所述。 .

关于python - 如果 session 因无事件而过期,则注销并重定向到登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39718259/

相关文章:

javascript - 如何将 strip 自定义结帐 token 发布到 flask 后端

python - 密码哈希和验证

jsf - Spring Security 登录后,我被重定向到 CSS/JS 资源而不是 HTML 页面

regex - 使用 htaccess 重写搜索页面查询 URL

javascript - 为什么我的文件上传(到 Flask 服务器)没有出现在 request.files 中但出现在 request.stream 中?

python - 无法从 flask 中的 send_from_directory() 检索文件

python - 将多个 Parquet 文件加载到数据框中进行分析

python - 通过 teamcity 运行 python 测试 : Error: Source not found

python - 如何在 PyQt4 中的动态复选框列表中检查 stateChanged

.htaccess - 对某些页面和文件夹强制使用 HTTPS,对所有其他页面和文件夹强制使用 HTTP