Ошибка повторения rails: мы обнаружили, что ваш сайт не проверяет решения reCAPTCHA. это возвращает ложь все время - PullRequest
0 голосов
/ 02 сентября 2018

У меня есть ошибка recaptcha Мы обнаружили, что ваш сайт не проверяет решения reCAPTCHA. Это необходимо для правильного использования reCAPTCHA на вашем сайте. Пожалуйста, смотрите наш сайт разработчика для получения дополнительной информации.

Я сделал все точно, но его флажок recaptcha по-прежнему возвращает false даже после того, как я проверил кнопку

Вот мои коды:

В гемфайле

gem "recaptcha", require: "recaptcha/rails"

в конфигурации в инициализаторе в recaptcha.rb

Recaptcha.configure do |config|
  config.site_key   = 'my site key'
  config.secret_key = 'my secret key' 
end

В поле зрения:

<%= recaptcha_tags %>

В контроллере:

def create
  @contact = Contact.new(contact_attributes)
  if verify_recaptcha(model: @contact) && @contact.save
    ContactMailer.message_send(@contact).deliver
    redirect_to contacts_path, notice: "Thank you... Your Message was sent successfully."
  else
    flash.now[:error] = "Please correct the form"
    render :index
  end
end

Я даже пробую это в recaptcha.rb

Recaptcha.configure do |config|
  config.public_key = ENV["RECAPTCHA_PUBLIC_KEY"]
  config.private_key = ENV["RECAPTCHA_PRIVATE_KEY"]
end

но я получил эту ошибку

undefined method `public_key=' for #<Recaptcha::Configuration:0x00007fc132b363e8> (NoMethodError)
Did you mean?  public_send

По этой ссылке https://www.google.com/recaptcha/api/siteverify я имею { «успех»: ложь, "коды ошибок": [ «Недостающей ввод-ответ», «Недостающий ввод-секрет» ] }

Не уверен, что делать, пожалуйста, помогите мне и заранее спасибо

1 Ответ

0 голосов
/ 02 сентября 2018

Куда ты положил <%= recaptcha_tags %>?

Согласно: https://github.com/ambethia/recaptcha/blob/master/lib/recaptcha/configuration.rb

Вы можете:

Recaptcha.configure do |config|
  config.site_key   = 'my site key'
  config.secret_key = 'my secret key' 
end

в противном случае камень автоматически выберет его из ENV['RECAPTCHA_SECRET_KEY'] и ENV['RECAPTCHA_SITE_KEY'].

Это не сработает:

Recaptcha.configure do |config|
  config.public_key = ENV["RECAPTCHA_PUBLIC_KEY"]
  config.private_key = ENV["RECAPTCHA_PRIVATE_KEY"]
end

Мои сомнения теперь связаны с тем, что вы помещаете recaptcha_tags в неправильное место (возможно, не в форме). что он не отправляется на контроллер / серверную часть.

...