Sim*_*ton 5 ruby facebook ruby-on-rails omniauth
我有一个应用程序,它独家使用Facebook作为身份验证提供程序,并正确设置生产模式的回调.为了这个工作,你提供一个网站的URL和回调网站域名您的Facebook应用程序,并在我的情况下,它http://appname.heroku.com和appname.heroku.com分别.
问题是我的控制器设置为仅允许经过身份验证的会话,因此我无法在开发模式下查看我的应用程序,因为Facebook应用程序的域显然尚未设置为localhost.
如何解决这个问题而不必在Facebook的设置中更改它?
Mik*_*kin 10
使用域创建另一个Facebook应用程序以localhost:3000进行开发并config.yml在config目录中创建
development:
facebook_api_key: 656756786867868
facebook_api_secret: 4sdffdh6u345436
production:
facebook_api_key: 45778799
facebook_api_secret: fghjkbbcbcbcbcb
Run Code Online (Sandbox Code Playgroud)
现在将load_config.rb添加到initializers文件夹
# load config
AppConfig = YAML.load_file(Rails.root.join('config', 'config.yml'))
# Override config options by correct environment
env_options = AppConfig.delete(Rails.env)
AppConfig.merge!(env_options) unless env_options.nil?
Run Code Online (Sandbox Code Playgroud)
最后将其添加到 omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, AppConfig['facebook_api_key'], AppConfig['facebook_api_secret']
end
Run Code Online (Sandbox Code Playgroud)
根据轨道环境,它将采用您的密钥.这就是全部,希望它对你有所帮助.
nde*_*eau 10
为什么不在环境文件中创建ENV []变量并在初始化程序中使用它们:
provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK']
provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET']
Run Code Online (Sandbox Code Playgroud)
对我来说似乎更容易(也更短).
| 归档时间: |
|
| 查看次数: |
2817 次 |
| 最近记录: |