我遇到此重新验证错误,我们检测到您的网站未在验证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中 我有 { “成功”:错误, “错误代码”:[ “缺少输入响应”, “缺少输入的秘密” ] }
不确定该怎么做,请帮助我,并预先感谢
答案 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
放在错误的位置(可能不正确)。它不会发送到控制器/后端。