Flask-Login:如何设置“blueprint_login_views”以具有特定于蓝图的login_view

1 python flask-login

有关如何为每个蓝图使用 login_view 有任何帮助吗?我在 Google、你的博客和所有可能的来源上进行了搜索,但没有找到任何可行的示例。

我有4张蓝图如下:

admin(__init__, route.py)
customer(__init__, route.py)
partners(__init__, route.py)
auth(__init__, route.py)
Run Code Online (Sandbox Code Playgroud)

auth将作为不同类型(社交+常规)身份验证的中心点进行处理。

我正在使用@login_required不同配置文件下的所有可能的路线。但问题是;login_manager.login_view只允许我设置一个登录视图。我想要有单独的登录视图,以便我各自的授权可以重定向到各自的蓝图等,并且我可以清楚地控制谁(角色)正在登录及其各自的路线。

我只发现了一些东西

@<a href="http://flask-login.readthedocs.org/en/latest/#flask.ext.login.LoginManager.login_view">LoginManager.login_view blueprint_login_views</a> 
Run Code Online (Sandbox Code Playgroud)

unauthorized()被调用时,它可以首先检查blueprint_login_views,如果没有设置,则login_views检查,然后"HTTP 401 (Unauthorized) error"如果没有设置则引发。但没有可行的示例如何blueprint_login_views设置login_manager。请帮忙。

Meh*_*hdi 6

OP的原始答案格式正确:

我自己现在可以解决这个问题。我删除了“login_manager.login_view”,并在加载蓝图后在 app/ init .py中添加了以下块。

login_manager.blueprint_login_views = {
    'partners': '/partner/login',
    'customers': '/customer/login',
    'admin' : '/admin/login',
}
Run Code Online (Sandbox Code Playgroud)