我正在为我的网络应用程序使用不同的域名(www.example.heroku.com,www.example2.com和www.example3.com)。身份验证是使用Omniauth 0.2.6
如果我希望我的用户通过Facebook进行身份验证,我需要为每个域名使用不同的Facebook应用帐户,以便使用不同的应用ID和密钥。
在omniauth初始化程序中定义应用程序ID和密钥时(提供者:facebook,“APP_ID”,“APP_SECRET”),我该怎么做:
定义多个应用ID /密钥
或有条件地将id /键定义到当前域名
我一直在努力,但没有成功......
答案 0 :(得分:2)
在Omniauth 1.1.0的setup phase
中,此设置已更改您现在必须在omniauth.rb
中进行设置provider_keys = YAML.load_file(File.join(Rails.root, 'config', 'provider_keys.yml'))
SETUP_PROC = lambda do |env|
env['omniauth.strategy'].options[:client_id] = provider_keys[Rails.env]['facebook'][server_name]['consumer_key']
env['omniauth.strategy'].options[:client_secret] = provider_keys[Rails.env]['facebook'][server_name]['consumer_secret']
end
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, setup: SETUP_PROC
end
并且您的provider_keys.yml看起来像这样
development:
facebook:
www.example.heroku.com:
consumer_key: 'xxxxxxxx'
consumer_secret: 'xxxxxxxx'
www.example.com:
consumer_key: 'xxxxxxx'
consumer_secret: 'xxxxxxx'