Omniauth 配置秘密 rails 4

Omniauth configuration in secrets rails 4

我正在尝试配置不同的环境,以便测试 Facebook 登录。生产工作正常,但我无法正确地包含我的开发凭据。我正在尝试使用 secrets.yml,因为这是我用来存储其他 api 凭证的方式。

这是我在初始化程序中得到的内容,omniauth.rb :

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_SECRET'],
           :scope => 'email,user_location'
 end

这在我的 secrets.yml 文件中:

development:
  FACEBOOK_APP_ID: mytestappid
  FACEBOOK_SECRET: mytestsecretkey

production:
  FACEBOOK_APP_ID: <%= ENV["FACEBOOK_APP_ID"] %>
  FACEBOOK_SECRET: <%= ENV["FACEBOOK_SECRET"] %>

我尝试在初始化程序中将 'config' 更改为 'secrets',但这没有用。我怀疑它与中间件有关,但我不确定。谁能帮我指出正确配置的方向?生产仅适用于我使用 heroku 设置配置变量。

非常感谢!

您没有阅读机密文件。将您的 omniauth.rb 更改为:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, Rails.application.secrets.FACEBOOK_APP_ID, Rails.application.secrets.FACEBOOK_SECRET,
           :scope => 'email,user_location'
end

PS:修改后需要重启服务器