Rails omniauth-twitter动态客户端ID和秘密

时间:2015-06-25 06:01:17

标签: ruby-on-rails omniauth clientid omniauth-twitter

对于omniuath-twiiter我想设置多个开发者帐户但是我无法在运行时设置环境变量

请帮助

1 个答案:

答案 0 :(得分:0)

您可以将ID和密码添加到config.yml之类的配置文件中,并忽略config.yml中的.gitignore,跟踪config.example.yml文件,以使每个开发人员都能轻松使用。

omniauth:
   providers:
       - { name: 'google_oauth2', app_id: 'YOUR_APP_ID',
           app_secret: 'YOUR_APP_SECRET',
           args: { access_type: 'offline', approval_prompt: '' } }
       - { name: 'twitter', app_id: 'YOUR_APP_ID',
           app_secret: 'YOUR_APP_SECRET'}

和config omniuath-twiiter只需通过Settingslogic gem在config.yml中使用params,它很容易使用,将代码放入config/initializers/

中的文件中
class Settings < Settingslogic
  source "#{Rails.root}/config/config.yml
  namespace Rails.env
end

module Foobar
  def self.config
    Settings
  end
end

然后配置如下所示的omniauth:

Foobar.config.omniauth.providers.each do |provider|
   config.omniauth provider['name'].to_sym, provider['app_id'], provider['app_secret'], provider['args']
end

就是这样