Без создания пользовательского контроллера 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 %>
В сущности, если бот попытается выполнить автоматический вход повторно, контроллер устройства обнаружит, что капча не нажата, и не позволит им войти в систему.