You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask-Security的login_required装饰器未跳转至正确端点问题

解决Flask-Security @login_required 跳转不正确的问题

你遇到的问题核心是配置路径和实际视图路径不匹配,我帮你梳理下具体原因和解决方案:

问题根源

你设置了SECURITY_URL_PREFIX = '/auth',同时signin视图挂在auth蓝图下,所以实际可访问的登录路径是/auth/signin。但你配置的SECURITY_UNAUTHORIZED_VIEW = '/signin'会让Flask尝试跳转到根路径下的/signin(不带/auth前缀),而这个路径并没有对应的视图处理,自然无法正确跳转。

解决方案

方案1:使用带前缀的完整路径

直接把SECURITY_UNAUTHORIZED_VIEW改成包含前缀的正确路径:

# config.py
SECURITY_UNAUTHORIZED_VIEW = '/auth/signin'

方案2:使用视图端点名称(更推荐)

Flask中每个视图都有对应的端点名称,蓝图下的视图端点格式为蓝图名.视图函数名,你的signin视图端点就是auth.signin。用端点名称配置的好处是,后续如果修改蓝图的url_prefix或者视图的路由规则,不需要同步修改这个配置,跳转依然能正确指向目标视图:

# config.py
SECURITY_UNAUTHORIZED_VIEW = 'auth.signin'

额外检查点

为了确保配置生效,还要确认以下两点:

  • 你的auth蓝图已经正确注册到Flask应用,并且设置了url_prefix='/auth',示例代码如下:
# 主应用文件
from flask import Flask
from your_auth_module import auth

app = Flask(__name__)
app.register_blueprint(auth, url_prefix='/auth')
  • Flask-Security的初始化顺序正确,要确保在注册蓝图之后再初始化Security,避免路由匹配异常。

内容的提问来源于stack exchange,提问作者Iron Fist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:44:54