2011-03-09 18 views
6

मेरे पास एक रेल ऐप है जो फेसबुक के माध्यम से आगंतुकों को प्रमाणीकृत करने के लिए omniauth का उपयोग करता है।पर्यावरण के आधार पर फेसबुक प्रमाणीकरण कुंजी कैसे सेट करें?

जब आप फेसबुक के साथ एक ऐप पंजीकृत करते हैं, तो आपको एक कॉलबैक यूआरएल पंजीकृत करना होगा जिसे वे अपनी प्रमाणीकरण प्रक्रिया पूरी करने के बाद रीडायरेक्ट कर देंगे।

चूंकि मेरी उत्पादन साइट को मेरे विकास पर्यावरण की तुलना में एक अलग सर्वर पर होस्ट किया गया है, इसलिए मुझे फेसबुक के साथ 2 अलग-अलग यूआरएल पंजीकृत करने की आवश्यकता है। मैंने इसे दो ऐप्स, एक लाइव और एक dev संस्करण पंजीकृत करके किया है।

अब निश्चित रूप से मेरे पास दो ऐप_आईड्स और दो ऐप_सेक्रेट हैं जिनसे मेरे रेल एप्लिकेशन को उपयोग करने की आवश्यकता है।

मैं ओमनीएथ को विकास पर्यावरण में एक और चाबियों का उपयोग करने के लिए कैसे सेट करूं? और फिर /config/initializers/omniauth.rb में

Rails.application.config.middleware.use OmniAuth::Builder do 
    keys = SampleApp::Application.config.omniauth_keys 

    # ==> OmniAuth Provider Credentials 
    #     APP_ID    SECRET_ID 
    provider :facebook, keys.facebook.app_id, keys.facebook.app_secret 
end 

# development.rb 
SampleApp::Application.configure do 
    config.omniauth_keys.facebook.app_id = "32423423" 
    config.omniauth_keys.facebook.api_key = "324234324234324" 
    config.omniauth_keys.facebook.app_secret = "242343424234324324234324" 
end 

# production.rb 
SampleApp::Application.configure do 
    config.omniauth_keys.facebook.app_id = "7657566" 
    config.omniauth_keys.facebook.api_key = "7756765765756757" 
    config.omniauth_keys.facebook.app_secret = "65756767567567567757" 
end 

लेकिन मैं मिलता है:

मैं अपने कुंजी सेट करने के लिए मेरी/config/वातावरण निर्देशिका में तो जैसे की कोशिश की है

`method_missing': undefined method `omniauth_keys' 

जब मैं विकास सर्वर प्रारंभ करने का प्रयास, मेरा अनुमान है कि क्योंकि omniauth.rb/emviro से पहले भरी हुई है nments/*?

मैं इसे कैसे सेट अप कर सकता हूं?

संपादित करें: यहां पर विस्तृत त्रुटि संदेश

=> Booting WEBrick 
=> Rails 3.0.4 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
Exiting 
/home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/railtie/configuration.rb:77:in `method_missing': undefined method `omniauth_keys' for #<Rails::Application::Configuration:0xadaa69c> (NoMethodError) 
    from /home/david/sites/sample_app/config/environments/development.rb:32:in `block in <top (required)>' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/application.rb:47:in `class_eval' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/application.rb:47:in `configure' 
    from /home/david/sites/sample_app/config/environments/development.rb:1:in `<top (required)>' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:239:in `require' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:239:in `block in require' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:225:in `block in load_dependency' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:596:in `new_constants_in' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:225:in `load_dependency' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:239:in `require' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/application/bootstrap.rb:11:in `block in <module:Bootstrap>' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/initializable.rb:25:in `instance_exec' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/initializable.rb:25:in `run' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/initializable.rb:50:in `block in run_initializers' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/initializable.rb:49:in `each' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/initializable.rb:49:in `run_initializers' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/application.rb:134:in `initialize!' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/application.rb:77:in `method_missing' 
    from /home/david/sites/sample_app/config/environment.rb:5:in `<top (required)>' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:239:in `require' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:239:in `block in require' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:225:in `block in load_dependency' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:596:in `new_constants_in' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:225:in `load_dependency' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:239:in `require' 
    from /home/david/sites/sample_app/config.ru:3:in `block in <main>' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/rack-1.2.1/lib/rack/builder.rb:46:in `instance_eval' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/rack-1.2.1/lib/rack/builder.rb:46:in `initialize' 
    from /home/david/sites/sample_app/config.ru:1:in `new' 
    from /home/david/sites/sample_app/config.ru:1:in `<main>' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/rack-1.2.1/lib/rack/builder.rb:35:in `eval' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/rack-1.2.1/lib/rack/builder.rb:35:in `parse_file' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/rack-1.2.1/lib/rack/server.rb:162:in `app' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/rack-1.2.1/lib/rack/server.rb:248:in `wrapped_app' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/rack-1.2.1/lib/rack/server.rb:213:in `start' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/commands/server.rb:65:in `start' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/commands.rb:30:in `block in <top (required)>' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/commands.rb:27:in `tap' 
    from /home/david/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.4/lib/rails/commands.rb:27:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

उत्तर

17

में /config/initializers/omniauth.rb

if Rails.env.production? 
    # set the app parameter 
elsif Rails.env.development? 
    # set the app parameter 
else 
    # test env 
    # set the app parameter 
end 

नोट है: Rails.env.production? एक रेल 3 विधि है। मुझे लगता है कि 2.x संस्करणों के लिए आपको रेल [एनएनवी] या ऐसा कुछ उपयोग करना पड़ सकता है।

+0

ऐसा लगता है कि यह बहुत अच्छा काम करता है। विश्वास नहीं कर सकता मैंने इसे अपने बारे में नहीं सोचा था! धन्यवाद। –

संबंधित मुद्दे