¿Cómo configurar las claves de autenticación de Facebook según el entorno?
Tengo una aplicación de rieles que utiliza omniauth para autenticar a los visitantes a través de Facebook.
Cuando registra una aplicación con Facebook, debe registrar una URL de devolución de llamada a la que redirigirán una vez que hayan completado su proceso de autenticación.
Dado que mi sitio de producción está alojado en un servidor diferente al de mi entorno de desarrollo, necesito registrar 2 URL diferentes en Facebook. Lo hice registrando dos aplicaciones, una en vivo y una versión para desarrolladores.
Ahora, por supuesto, tengo dos app_ids y dos app_secrets que mi aplicación Rails necesita usar.
¿Cómo configuro OmniAuth para usar un conjunto de claves en el entorno de desarrollo y otro en producción?
Intenté configurar mis claves en mi directorio / config / entornos de la siguiente manera:
# 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
y luego en /config/initializers/omniauth.r
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
pero obtengo
`method_missing': undefined method `omniauth_keys'
cuando trato de iniciar el servidor de desarrollo, supongo que omniauth.rb se carga antes / emvironments / *?
¿Cómo puedo configurar esto?
Editar Aquí hay un mensaje de error más detallado
=> 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>'