【问题标题】:Flask Secuirty Disable Password confirmationFlask Security 禁用密码确认
【发布时间】:2020-04-24 19:49:27
【问题描述】:

您好,我正在使用 python flask Flask-Security

我想让用户确认他们的电子邮件而不是他们的密码。

它不要求用户输入他们的密码并且另一个输入来确认密码匹配。

相反,它只是要求用户输入一个密码。

SECURITY_CONFIRMABLE 要求用户在注册新帐户时确认其电子邮件地址。

我希望用户在注册时确认他们的电子邮件,但不检查密码是否匹配。

【问题讨论】:

    标签: python flask flask-security


    【解决方案1】:

    来自Flask-SecurityRegisterForm 继承自ConfirmRegisterFormPasswordConfirmFormMixinNextFormMixin。您应该从Flask-Security 导入ConfirmRegisterFormNextFormMixin 并定义一个自定义RegisterForm,它只继承自ConfirmRegisterFormNextFormMixin

    from flask-security import ConfirmRegisterForm, NextFormMixin
    
    class CustomRegisterForm(ConfirmRegisterForm, NextFormMixin):
        def __init__(self, *args, **kwargs):
            super(CustomRegisterForm, self).__init__(*args, **kwargs)
            if not self.next.data:
                self.next.data = request.args.get('next', '')
    

    重写Flask-Security的配置:

    app["SECURITY_REGISTER_FORM"] = CustomRegisterForm
    

    【讨论】:

      【解决方案2】:

      如果您使用SECURITY_CONFIRMABLE = True 并想在注册时使用密码确认,只需添加到配置文件或应用程序配置:

      from flask_security import RegisterForm
      SECURITY_CONFIRM_REGISTER_FORM = RegisterForm
      # or use this: app["SECURITY_CONFIRM_REGISTER_FORM"] = RegisterForm
      

      这适用于Flask-Security==3.0.0

      【讨论】:

        猜你喜欢
        • 2013-11-03
        • 2020-12-23
        • 2016-09-11
        • 2019-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-23
        • 2020-05-09
        相关资源
        最近更新 更多