#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 только в том случае, если я создаю нового пользователя?