Flask - 如果当前用户未通过身份验证,如何重定向到登录页面?

Posted

技术标签:

【中文标题】Flask - 如果当前用户未通过身份验证,如何重定向到登录页面?【英文标题】:Flask - How to redirect to login page if the current user is not authenticated? 【发布时间】:2019-09-02 16:09:42 【问题描述】:

我的load_user 函数是这样的:

@login_manager.user_loader
def load_user(user_id):
    u = None
    # user_id is represented as a json-formatted string
    try:
        user = json.loads(user_id)
        u = load_user_from_backend(user.get('user_id'), user.get('password'))
    except:
        return None
    return u

laod_user 返回 None 值时,我希望将当前用户重定向回login 页面。我如何实现这一目标?谢谢。

【问题讨论】:

Redirecting to URL in Flask的可能重复 不要这样做except:它会隐藏错误 【参考方案1】:

没有什么是 if 语句无法处理的。不过,这当然不是处理用户身份验证的最佳方法。

result = load_user(user_id)
if result is None:
    return redirect(url_for('login'))

【讨论】:

可能值得将它变成一个装饰器,以获得更便携但远非全面的解决方案

以上是关于Flask - 如果当前用户未通过身份验证,如何重定向到登录页面?的主要内容,如果未能解决你的问题,请参考以下文章