Flask-User / Flask-WTForms中的reCAPTCHA:“现场是否在少于50%的时间内验证reCAPTCHA通过的解决方案”?

时间:2018-09-07 21:59:12

标签: python flask jinja2 recaptcha flask-wtforms

我已经通过reCAPTCHAFlask-User集成到了我的一些页面上,该页面依次使用了Flask-WTF。我进行了一些测试,似乎效果很好,但是一两天后,我从google.com/recaptcha/admin得到了以下消息:

enter image description here

现在我不确定我做错了什么还是Google数据不足以提供正确的反馈。这是我使用代码的方式:

在我的main_app.py

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

在烧瓶用户的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>

1 个答案:

答案 0 :(得分:0)

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

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

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