1

我正在尝试配置不同的环境,以便测试 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"] %>

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

非常感谢!

4

1 回答 1

2

您没有阅读机密文件。将您的 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:修改后需要重启服务器

于 2015-02-15T11:32:49.750 回答