ReCaptcha хорошо с формой, но он также регистрируется без подтверждения - PullRequest
1 голос
/ 24 января 2020

У меня есть user_registration_controller, созданный после этого урока: https://github.com/heartcombo/devise/wiki/How-To: - Использование-Recaptcha-with-Devise

И я также добавил <%= recaptcha_tags %> к своему коду (вот мой код: https://github.com/prp-e/dakhlokharj). Когда я запускаю его, он работает нормально. Но есть одна проблема. Пользователь может зарегистрироваться, даже не устанавливая этот флажок. Я ожидал ошибку.

1 Ответ

1 голос
/ 26 января 2020

Несколько месяцев go Я также столкнулся с множеством проблем, связанных с этим, после того как, ниже, javascript хак успешно работает для меня: -

Здесь я добавил функцию отправки, чтобы предотвратить неаутентифицированную регистрацию

<script type="text/javascript">
   $("#new_user").on("submit", function (e) {
     return isCaptchaChecked();
    })
    function isCaptchaChecked() {
      if(grecaptcha && grecaptcha.getResponse().length <= 0){
        alert('Please fill the recaptcha.')
        return false;
      }else{
        return true;
      }
    }
  </script>

А потом в контроллере регистрации: -

def create
   # then add a check in create method from backend
    unless verify_recaptcha(model: User.new)
      flash[:error] =  "Wrong Captcha!"
      return redirect_to users_registrations_new_user_path
    end
    .......
    .......
    .......
  end

Таким образом я решил свою проблему. Надеюсь, это поможет и вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...