Rails 4:在本地主机上重新验证“无效的站点密钥”

Posted

技术标签:

【中文标题】Rails 4:在本地主机上重新验证“无效的站点密钥”【英文标题】:Rails 4: recaptcha on localhost "Invalid site key" 【发布时间】:2016-06-28 03:20:06 【问题描述】:

所以我试图在本地主机上使用recaptcha gem。我收到此错误(它是波兰语):

这意味着类似:

网站所有者信息 - 错误:网站密钥无效

secrets.yml 中的开发部分:

development:
  secret_key_base: ENV["SECRET_KEY_BASE"]
  recaptcha_public_key: ENV["RECAPTCHA_PUBLIC_KEY"]
  recaptcha_secret_key: ENV["RECAPTCHA_SECRET_KEY"]

recaptcha 初始化程序(recaptcha.rb):

Recaptcha.configure do |config|
  config.public_key  = Rails.application.secrets.recaptcha_public_key
  config.private_key = Rails.application.secrets.recaptcha_secret_key
  config.api_version = 'v2'
end

宝石文件:

source 'https://rubygems.org'

ruby '2.2.4'

group :development, :test do
  gem 'dotenv-rails'
  gem 'pry'
end

group :development do
  gem 'dotenv-rails'
  gem 'pry-rails'
  gem 'better_errors'
  gem 'binding_of_caller'
  gem 'spring'
end

gem "recaptcha", require: "recaptcha/rails"
gem 'will_paginate', '~> 3.0.6'
gem 'rails', '4.2.5.1'
gem 'pg'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'decent_exposure'
gem 'slim'
gem 'nprogress-rails'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'ffaker'
gem "font-awesome-rails"
gem 'bootstrap-sass', '~> 3.3.6'
gem 'devise'

我还没有在控制器内部实现任何逻辑。

Google 说每个键都应该在 localhost 上工作。

我确实遵循了 github 上的指南。我也读过this 的问题。不过这些对我没有帮助。

我想我忘记了一些显而易见的事情。有什么想法吗?

【问题讨论】:

【参考方案1】:

原来 ENV 变量在 recaptcha.rb 文件中不起作用。直接在那里敲键解决了这个问题。

虽然这不能让我满意,但我会尝试让 ENV vars 在那里工作。

编辑: 从此更改 secrets.yml:

development:
  secret_key_base: ENV["SECRET_KEY_BASE"]
  recaptcha_public_key: ENV["RECAPTCHA_PUBLIC_KEY"]
  recaptcha_secret_key: ENV["RECAPTCHA_SECRET_KEY"]

到这里:

development:
  secret_key_base: ENV["SECRET_KEY_BASE"]
  recaptcha_public_key: <%= ENV["RECAPTCHA_PUBLIC_KEY"] %>
  recaptcha_secret_key: <%= ENV["RECAPTCHA_SECRET_KEY"] %>

解决了问题。

【讨论】:

以上是关于Rails 4:在本地主机上重新验证“无效的站点密钥”的主要内容,如果未能解决你的问题,请参考以下文章

Rails - 在本地主机上创建内部服务器错误(500)

当我在本地主机上运行我的服务器时出现问题(ruby on rails)

获取 MongoCommandException:命令失败,错误 18(AuthenticationFailed):“身份验证失败。”在服务器本地主机上:27017

本地主机上的 Firebase Facebook 身份验证

本地主机上带有 hMailServer 的 PHP sendmail:535 身份验证失败

使用 NextJS + Express 在本地主机上进行 HTTPS