rails recaptcha错误:我们检测到您的站点未在验证reCAPTCHA解决方案。它总是返回false

时间:2018-09-02 09:33:17

标签: ruby-on-rails recaptcha

我遇到此重新验证错误,我们检测到您的网站未在验证reCAPTCHA解决方案。这是在您的站点上正确使用reCAPTCHA所必需的。请访问我们的开发者网站以获取更多信息。

我完全做了所有事情,但是即使我勾选了按钮,它仍然存在的Recaptcha复选框仍返回false

这是我的代码:

在gemfile中

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 :(得分:1)

您将<%= 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放在错误的位置(可能不正确)。它不会发送到控制器/后端。