5

Estoy usando omniauth, con el diseño, para permitir el inicio de sesión a través de Facebook en mi aplicación.idear con omniauth - establecer una configuración separada para dev y producción

Mi archivo devise.rb tiene la siguiente línea

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

tengo 2 aplicaciones en facebook, una apuntando a la URL de mi vivo & la otra a mi url prog.

¿Cómo agrego dos configuraciones de omniauth separadas al archivo rb devise?

algo así como -

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 

más importante, ¿debería estar poniendo esto en el archivo devise.tb o debería ser separados en mi production.rb & archivos devleopment.rb? Si es así, ¿cómo lo hago referencia en mi archivo devise.rb?

Respuesta

11

Mi método para esto es almacenarlos en un archivo yaml. Me llamo mía 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" 

Luego, en mi archivo devise.rb yo:

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'] 

Como buena práctica, probablemente no debería almacenar sus claves de la API de producción en este archivo en el control de versiones. Debe almacenarlo en el servidor y enlazarlo simbólicamente en su script de despliegue, como lo haría database.yml

+1

gracias por ayudar. Temo que no estoy seguro de lo que quiere decir con el enlace simbólico, alojo mi aplicación en heroku, así que no tengo un script de implementación que yo sepa. – Finnnn

Cuestiones relacionadas