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 - 如果当前用户未通过身份验证,如何重定向到登录页面?的主要内容,如果未能解决你的问题,请参考以下文章
如果用户未通过身份验证,Apache 2.x 和 mod_proxy 会产生重定向循环
Laravel - 用户未通过身份验证时如何重定向到所需页面
如果用户未使用中间件进行身份验证,Laravel 5.4 将重定向到特定页面