Рельсы / Разрабатывают. Включить параметр ответа по капче в процесс входа - PullRequest
0 голосов
/ 26 марта 2019

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

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

<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 %>

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

...