Flask-安全覆盖寄存器视图
Flask-Security override register view
在 Flask-Security 中是否有一些方便的方法来覆盖注册视图?我对用于注册的内置视图非常满意,但我需要它只能在身份验证后由特定角色访问。
我试图像这样重写它(使用 SECURITY_REGISTER_URL='/register/'
),但它只是采用了内置函数,而我的完全被忽略了:
@app.route('/register/')
@login_required
@roles_required('superuser')
def register():
"""View function which handles a registration request."""
...
所以问题是 - 我是否必须从 peak 编写自己的注册视图并禁用 Flask-Security 注册?
我还考虑过在 register_user.html 模板中检查用户 login/role 并可能重定向回主页,但我不确定这是否是实现此目的的正确方法...
几个小时后,我终于设法让它工作了。我忘记指定方法,同时注册路由 @app.route('/register/', methods=['GET', 'POST'])
。如果你禁用原来的 Flask-Security 的注册视图(SECURITY_REGISTERABLE = False
),它就像一个魅力!
此外,当你想覆盖 Flask-Security 的某些视图时,不能那么容易地禁用它,比如登录,你必须执行与上述相同的操作,但还要注册你的 view/blueprint 第一!
在 Flask-Security 中是否有一些方便的方法来覆盖注册视图?我对用于注册的内置视图非常满意,但我需要它只能在身份验证后由特定角色访问。
我试图像这样重写它(使用 SECURITY_REGISTER_URL='/register/'
),但它只是采用了内置函数,而我的完全被忽略了:
@app.route('/register/')
@login_required
@roles_required('superuser')
def register():
"""View function which handles a registration request."""
...
所以问题是 - 我是否必须从 peak 编写自己的注册视图并禁用 Flask-Security 注册?
我还考虑过在 register_user.html 模板中检查用户 login/role 并可能重定向回主页,但我不确定这是否是实现此目的的正确方法...
几个小时后,我终于设法让它工作了。我忘记指定方法,同时注册路由 @app.route('/register/', methods=['GET', 'POST'])
。如果你禁用原来的 Flask-Security 的注册视图(SECURITY_REGISTERABLE = False
),它就像一个魅力!
此外,当你想覆盖 Flask-Security 的某些视图时,不能那么容易地禁用它,比如登录,你必须执行与上述相同的操作,但还要注册你的 view/blueprint 第一!