Я интегрировал reCAPTCHA
на несколько своих страниц через Flask-User
, который, в свою очередь, использует Flask-WTF
. Я провел несколько тестов, и, похоже, он отлично работает, но через один или два дня я получил следующее сообщение от google.com/recaptcha/admin:
И теперь я не уверен, сделал ли я что-то не так или у Google просто недостаточно данных, чтобы дать мне правильный отзыв. Вот как я использовал код:
В моем main_app.py
app.config['RECAPTCHA_PUBLIC_KEY'] = '...my_keys...'
app.config['RECAPTCHA_PRIVATE_KEY'] = '...my_keys...'
В forms.py
пользователя Flask
from flask_wtf import RecaptchaField
а затем в каждом соответствующем классе я использовал recaptcha = RecaptchaField()
, чтобы позже я мог использовать его через Jinja2
в html.
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>
Вам необходимо настроить форму регистрации (см. документ) и добавить поле captcha из WTF
:
# Customize the Register form:
class CustomRegisterForm(RegisterForm):
recaptcha= RecaptchaField()
затем (см. документ WTF) в шаблоне /flask-user/...
добавить {{ form.recaptcha }}