首页 > 解决方案 > rails recaptcha 错误:我们检测到您的站点未验证 reCAPTCHA 解决方案。它一直返回 false

问题描述

我有这个 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 我有 { "success": false, "error-codes": [ "missing-input-response", "missing-input-secret" ] }

不知道该怎么做请帮助我并提前感谢

标签: ruby-on-railsrecaptcha

解决方案


你放哪儿了<%= 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

否则,gem 会自动从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错误的地方(可能不在表格中)。它不会被发送到控制器/后端。


推荐阅读