【问题标题】:reCAPTCHA in Flask-User / Flask-WTForms: "site is verifying reCAPTCHA passed solutions less than 50% of the time"?Flask-User / Flask-WTForms 中的 reCAPTCHA:“网站验证 reCAPTCHA 通过解决方案的时间少于 50%”?
【发布时间】:2018-09-07 21:59:11
【问题描述】:

我已经通过Flask-User 在我的一些页面上集成了reCAPTCHA,而Flask-WTF 又使用了Flask-WTF。我做了一些测试,似乎效果很好,但一两天后,我从 google.com/recaptcha/admin 收到以下消息:

现在我不确定是我做错了什么,还是谷歌没有足够的数据给我一个正确的反馈。以下是我使用代码的方式:

在我的 main_app.py 中

app.config['RECAPTCHA_PUBLIC_KEY'] = '...my_keys...'
app.config['RECAPTCHA_PRIVATE_KEY'] = '...my_keys...'

在 Flask-User 的forms.py

from flask_wtf import RecaptchaField

然后在每个相应的类中我都使用了recaptcha = RecaptchaField(),这样我以后可以在html 中通过Jinja2 使用它。

class LoginForm(FlaskForm):
    recaptcha = RecaptchaField()
    ...

class RegisterForm(FlaskForm):
    recaptcha = RecaptchaField()
    ...

class ForgotPasswordForm(FlaskForm):
    recaptcha = RecaptchaField()
    ...

class ResetPasswordForm(FlaskForm):
    recaptcha = RecaptchaField()
    ...

这是一个 html 示例:

<form>
    ...
    ...
    {{ form.recaptcha }}

    {# Submit button #}
    ...
</form>

【问题讨论】:

    标签: python flask jinja2 recaptcha flask-wtforms


    【解决方案1】:

    您需要自定义(see doc)的注册表单并从WTF添加验证码字段:

    # Customize the Register form:
    class CustomRegisterForm(RegisterForm):
      recaptcha= RecaptchaField()
    

    然后(see WTF doc)在模板/flask-user/...添加{{ form.recaptcha }}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-03
      • 2021-12-09
      • 1970-01-01
      • 2014-02-05
      • 1970-01-01
      相关资源
      最近更新 更多