5

私はomniauthを使って、私のアプリでFacebook経由でサインオンできるようにしています。omniauthとdevise - devとproductionのために別の設定を設定する

マイdevise.rbファイルには、私は私のdevのURLに他の私のライブURLへのFacebook上の2つのアプリを、1つのポインティング&を持って次の行

config.omniauth :facebook, 'MY_DEV_APP_ID', 'MY_DEV_APP_SECRET' 

を持っています。

devise rbファイルに2つの別々のomniauth設定を追加するにはどうすればよいですか?

のようなもの -

if ENV['RAILS_ENV'] = "production" 
    config.omniauth :facebook, 'MY_LIVE_APP_ID', 'MY_LIVE_APP_SECRET' 
else 
    config.omniauth :facebook, 'MY_DEV_APP_ID', 'MY_DEV_APP_SECRET' 
end 

さらに重要な、私はdevise.tbファイルでこれを置くべきであるか、それは私のproduction.rb & devleopment.rbファイルに区切るべきか?もしそうなら、それを私のdevise.rbファイルでどのように参照するのですか?

答えて

11

私の方法は、yamlファイルに保存する方法です。良いプラクティスとして

API_KEYS = YAML::load_file("#{Rails.root}/config/api_keys.yml")[Rails.env] 
config.omniauth :facebook , API_KEYS['facebook']['api_key'], API_KEYS['facebook']['api_secret'] 
config.omniauth :twitter , API_KEYS['twitter']['api_key'], API_KEYS['twitter']['api_secret'] 

、あなたはおそらく、バージョン管理でこのファイルに本番APIキーを格納しないでください。私はその後、私は私のdevise.rbファイルにconfig/api_keys.yml

defaults: &defaults 
    twitter: 
    api_key: "KEY" 
    api_secret: "SECRET" 
    facebook: 
    api_key: "KEY" 
    api_secret: "SECRET" 

development: 
    <<: *defaults 

test: 
    <<: *defaults 

production: 
    twitter: 
    api_key: "KEY2" 
    api_secret: "SECRET2" 
    facebook: 
    api_key: "KEY2" 
    api_secret: "SECRET2" 

鉱山を呼び出します。サーバに保存して、デプロイスクリプトでシンボリックリンクする必要があります。database.yml

+1

ありがとうございます。あなたがシンボリックリンクで何を意味するかわからないことを恐れている、私はherokuで私のアプリケーションをホストしているので、私は気づいているスクリプトをデプロイしていない。 – Finnnn

関連する問題