Rails / разработка. Включить параметр ответа captcha в процессе sign_in

#ruby-on-rails #devise #captcha

#ruby-on-rails #разработать #captcha

Вопрос:

Не создавая пользовательский контроллер сеансов, который наследуется от скрытого контроллера devise, я хочу выяснить способ добавления параметра «g-recaptcha-response», который будет включен в процесс аутентификации из представления devise по умолчанию.

Вот мой взгляд с включенным рисунком recaptcha. Когда я нажимаю на него, я получаю ответ, когда мое приложение вызывает метод SessionController#create. Я пытаюсь выяснить, как заставить этот процесс определять, что была нажата форма captcha, и аутентифицировать пользователя, входящего в систему из-за этого.

 <h2>Log in</h2>

<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
  <div class="field">
    <%= f.label :email %><br />
    <%= f.email_field :email, autofocus: true, autocomplete: "email" %>
  </div>

  <div class="field">
    <%= f.label :password %><br />
    <%= f.password_field :password, autocomplete: "off" %>
  </div>

  <% if devise_mapping.rememberable? -%>
    <div class="field">
      <%= f.check_box :remember_me %>
      <%= f.label :remember_me %>
    </div>
  <% end -%>

  <div class="g-recaptcha" data-sitekey="6LeeL5gUAAAAADbq0vt4d9biAs8oegkPx9ttUkKb"></div>

  <div class="actions">
    <%= f.submit "Log in" %>
  </div>

<% end %>
<%= link_to 'Sign Up', new_user_registration_path %>
  

По сути, если бот попытается повторно выполнить автоматический вход, контроллер devise увидит, что captcha не была нажата, и остановит их попытки входа в систему.

Комментарии:

1. Привет! Используете ли вы пользовательский контроллер регистрации для Devise? Если да, не могли бы вы добавить t код к вашему вопросу?

2. Проверьте это github.com/igorkasyanchuk/new_google_recaptcha для Google captcha не требуется нажимать captcha

3. Ну, у меня действительно есть пользовательский контроллер регистрации, но вход в систему с помощью devise связан с контроллером сеансов. Я взглянул на новую Google recaptcha, и она кажется довольно крутой. Как бы я согласовал форму captcha с методом Sessions#create?

4. Игорь, способен ли этот gem использовать капчу, которая была нажата или использовалась при входе в систему через devise, поскольку ваша документация показывает, что она работает с devise только в том случае, если я создаю нового пользователя?