首页 文章

如果会话过期,如果没有活动并重定向登录页面,则Flask注销

提问于
浏览
0

我很擅长烧瓶,并尝试用烧瓶更新网站,用户拥有帐户并能够登录 . 如果超过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)

2 回答

  • 0

    您可以使用 permanent_session_lifetimesession.modified 中描述的 session.modified 标志 .

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

  • 0

    你的问题的解决方案,你必须导入datetime.timedelta库

    session.permanent = True
    app.permanent_session_lifetime = timedelta(seconds=3)
    session.modified = True
    

相关问题