Flask-Security覆盖寄存器视图

时间:2018-06-12 15:06:59

标签: python flask override flask-security

是否有一些方便的方法来覆盖Flask-Security中的寄存器视图?我对内置的注册视图非常满意,但我需要它只能在身份验证和某些角色之后才能访问。

我试图像这样覆盖它(使用SECURITY_REGISTER_URL='/register/'),但这只是内置函数而我的完全被忽略了:

@app.route('/register/')
@login_required
@roles_required('superuser')
def register():
    """View function which handles a registration request."""
    ...

所以问题是 - 我是否必须从峰值编写自己的注册视图并禁用Flask-Security注册?

我还考虑过检查register_user.html模板中的用户登录/角色,并可能重定向回主页,但我不确定这是否是实现此目的的正确方法......

1 个答案:

答案 0 :(得分:1)

几个小时后,我终于成功了。在注册路由@app.route('/register/', methods=['GET', 'POST'])时,我忘了指定方法。如果您禁用原始Flask-Security的注册视图(SECURITY_REGISTERABLE = False),它就像一个魅力!

另外,当您想要覆盖Flask-Security中的某些视图时,无法轻松禁用,例如登录,您必须执行与上述相同的操作,还要先注册您的视图/蓝图! / p>