Rails 4:在本地主机上重新验证 "Invalid site key"
Rails 4: recaptcha on localhost "Invalid site key"
所以我想在本地主机上使用 recaptcha gem。我收到此错误(它是波兰语):
这意味着:
Information for site owner - ERROR: Invalid site key
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 说每个键都应该在本地主机上工作。
我确实遵循了 github 上的指南。我也确实阅读了 this 问题。但是这些对我没有帮助。
我想我忘记了一些显而易见的事情。有什么想法吗?
原来 ENV 变量在 recaptcha.rb 文件中不起作用。在那里直接键入键解决了问题。
虽然这不能满足我,但我会尝试让 ENV 变量在那里工作。
编辑:
从这里更改 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"] %>
解决了问题。
所以我想在本地主机上使用 recaptcha gem。我收到此错误(它是波兰语):
这意味着:
Information for site owner - ERROR: Invalid site key
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 说每个键都应该在本地主机上工作。
我确实遵循了 github 上的指南。我也确实阅读了 this 问题。但是这些对我没有帮助。
我想我忘记了一些显而易见的事情。有什么想法吗?
原来 ENV 变量在 recaptcha.rb 文件中不起作用。在那里直接键入键解决了问题。
虽然这不能满足我,但我会尝试让 ENV 变量在那里工作。
编辑: 从这里更改 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"] %>
解决了问题。