ruby-on-rails - 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" ] }
不知道该怎么做请帮助我并提前感谢
解决方案
你放哪儿了<%= 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
错误的地方(可能不在表格中)。它不会被发送到控制器/后端。
推荐阅读
- javascript - 将输入值存储在具有离子角 5 的数组中
- javascript - js正则表达式'|' 当任何一方匹配时匹配
- google-apps-script - Google Doc to PDF export Bug 取决于用户
- powershell - 如果我关闭它正在运行的 PS 窗口,FileSystemWatcher 将停止工作
- pytest - 如何使用 pytest 在测试 API 中传递 json
- javascript - 配置/环境文件的尾随或前导斜杠?
- android - 线性布局多屏
- android - 如何在 Android 中进行 Realm 迁移?
- postgresql - Heroku Express + Postgres 插件需要提升权限
- php - Ajax Modal:将所选值返回到下拉列表到更新表单