我有一个应用程序专门使用 Facebook 作为身份验证提供程序,并已正确设置生产模式的回调。为了实现这一点,您需要为 Facebook 应用程序提供一个站点 URL 和一个用于回调的站点域,在我的例子中是http://appname.heroku.com
and appname.heroku.com
分别。
问题是我的控制器设置为仅允许经过身份验证的会话,因此我无法在开发模式下查看我的应用程序,因为 Facebook 应用程序的域显然尚未设置为 localhost。
如何解决这个问题而不需要在 Facebook 的设置中进行更改?
使用域名创建另一个 Facebook 应用程序localhost:3000
发展和创造config.yml
in the config
目录
development:
facebook_api_key: 656756786867868
facebook_api_secret: 4sdffdh6u345436
production:
facebook_api_key: 45778799
facebook_api_secret: fghjkbbcbcbcbcb
现在将 load_config.rb 添加到初始值设定项文件夹
# 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?
最后将其添加到omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, AppConfig['facebook_api_key'], AppConfig['facebook_api_secret']
end
它将根据 Rails 环境获取您的密钥。就这些了,希望对你有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)