Я пытаюсь настроить reCaptcha с помощью Devise, и я хочу добавить фильтр, который проверяет, является ли verify_recaptcha истинным, прежде чем разрешить создание пользователя. Если это ложь, пользователь не должен создаваться.devise before_action: Проверить reCaptcha перед созданием пользователя
Я пытался следовать за Devic's documentation о том, как это сделать, но, похоже, это не работает в моем случае. Я также тестирую recaptcha в режиме производства, и общая настройка работает, и я могу проверить, является ли reCaptcha истинным или ложным.
Это то, что Завещание говорит мне делать в RegistrationsController:
prepend_before_action :check_captcha, only: [:create] # Change this to be any actions you want to protect.
private
def check_captcha
unless verify_recaptcha
self.resource = resource_class.new sign_up_params
respond_with_navigational(resource) { render :new }
end
end
Не работает. Im 100% уверен, что метод verify_recaptcha работает, и это не что-то не так с настройкой.
Я пробовал:
class RegistrationsController < Devise::RegistrationsController
before_action :check_captcha
private
def check_captcha
if !verify_recaptcha == true
flash[:recaptcha_error] = "Fejl. Husk at sætte flueben i at du ikke er en robot"
signupuser_users_path
end
end
конец
Но не повезло. Как мне это сделать? Где обычно разрабатываются методы проверки, которые должны выполняться до того, как пользователь зарегистрируется?
Я думаю, в вашем контроллере вы должны поместить этот 'prepend_before_action: check_captcha, только: [: создать]' вместо 'before_action: CHEC k_captcha', потому что я думаю, вам нужно это только на регистрацию – Sunny
Спасибо. В конце концов я получил метод разработки, чтобы работать с кодом в моем ответе ниже – sneglefar
Можете ли вы дать мне голосование по моему комментарию – Sunny