Il README omniauth-facebook menziona come configurarlo in un inizializzatore e come impostare opzioni come scope
solo per richiesta. Mi chiedo se sia possibile impostare l'ID app e il segreto dell'app per ogni richiesta.Usa omniauth-facebook quando l'ID app e il segreto dell'app sono diversi per ogni richiesta?
risposta
si può fare questo:
Sul omniauth.rb, fare questo:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook,:setup => true
end
Poi sul controller voi è necessario definire quanto segue:
def setup
request.env['omniauth.strategy'].options[:client_id] = @site.facebook_key
request.env['omniauth.strategy'].options[:client_secret] = @site.facebook_secret
render :text => "Setup complete.", :status => 404
end
Ovviamente devi aggiungere i percorsi associati, sul tuo route.rb.
#Facebook Omniauth routes
match '/auth/facebook/callback' => 'session#authorize_callback'
match '/auth/facebook/setup' => 'session#setup'
Buona fortuna
saluti. Ivan.
Se si utilizza escogitare si può fare questo
config.omniauth :facebook, :setup => lambda{
current_app_secret = // Get current domain
current_app_key = // Get config
env['omniauth.strategy'].options[:client_id] = current_app_secret
env['omniauth.strategy'].options[:client_secret] = current_app_key
}
Dove si trova questo codice? Un inizializzatore? Cosa succede se 'current_app_secret' deve essere recuperato dal database? Sembra brutto avere il codice ActiveRecord in un inizializzatore anche se funziona. – powerboy
Penso che dovresti essere in grado di sovrascriverli anche nel controller dell'applicazione. Puoi scrivere un before_filter in application_controller. Fammi sapere cosa succede. –
Grazie! Ma in realtà non sto usando idea. Il mio sito non ha bisogno di alcuna funzione fornita da Idea. – powerboy
Io uso devise (seguito questo railscast: http://railscasts.com/episodes/235-devise-and-omniauth-revised), ma mi ci è voluto un po 'per capire come implementare la soluzione di Ivangrx. Si è rivelato abbastanza facile. Ecco il mio codice:
# /config/initializers/devise.rb
config.omniauth :facebook, setup: true
# routes.rb
devise_scope :user do
#where omniauth_callback is the controller I made when following the Railscast
get "users/auth/facebook/setup" => "omniauth_callbacks#setup"
end
# omniauth_callbacks_controller.rb
def setup
request.env['omniauth.strategy'].options[:client_id] = @site.facebook_id
request.env['omniauth.strategy'].options[:client_secret] = @site.facebook_key
render :text => "Setup complete.", :status => 404
end
Grazie per l'aiuto su questo!
È possibile utilizzare la stessa funzione di impostazione per gestire più strategie (ad esempio: 'facebook' e' google_oauth2'). – Jacob
- 1. Facebook API - ID utente diversi per ogni app?
- 2. Python: Risultati diversi quando si usa PyCharm e IDLE/python
- 3. Powershell Set Lid Close Azione
- 4. Avvia l'app quando viene inserito il codice segreto?
- 5. CSS diversi per ogni browser?
- 6. Come mantenere sicuro il segreto del consumatore OAuth e come reagire quando è compromesso?
- 7. multiprocessing.Queue e Queue.Queue sono diversi?
- 8. Perché l'AST di Rust if-else usa tipi diversi per allora e per il resto?
- 9. Quando si usa "apply" e quando "funcall"?
- 10. URI diversi per ogni istanza di UIViewController
- 11. I moduli in nancyfx sono veramente creati su ogni richiesta?
- 12. È richiesta l'autorizzazione quando si usa Intent per chiamare il telefono?
- 13. ApplicationUserManager.Create chiamato su ogni richiesta
- 14. colori matplotlib diversi per ogni etichetta asse
- 15. ASP.NET MVC 2 VirtualPathProvider GetFile ogni volta per ogni richiesta
- 16. Perché ToLookup e GroupBy sono diversi?
- 17. Perché Equals() e == sono stati progettati per essere diversi?
- 18. yesod usa il processore quando inattivo?
- 19. OAuth - incorporare il segreto del client nell'applicazione?
- 20. come generare l'identificativo client OAuth e il segreto del client?
- 21. Express.js/App Passport che crea una nuova sessione per ogni richiesta, nonostante l'ID di sessione nelle intestazioni di richiesta
- 22. I colori sono errati quando si usa RenderTarget2D in XNA
- 23. Evitare risposta 401 per ogni richiesta utilizzando NTLM
- 24. Ci sono degli svantaggi quando si usa ".on"?
- 25. Come CQ autentica ogni richiesta?
- 26. Python - Usa 'set' per trovare i diversi elementi nell'elenco
- 27. MVC3 modo corretto per cambiare la cultura per ogni richiesta
- 28. usa RX per attivare eventi in momenti diversi?
- 29. "USA/Eastern" e "US/Central" e "US/Pacific" sono deprecati per strftime o solo per PHP?
- 30. Utilizzo di una chiave API e segreto per lo schema di sicurezza Swagger
Mi chiedo il motivo per cui desideri impostare l'ID app e il segreto dell'app per richiesta. C'è solo una chiave per app. –
Cosa succede se il mio sito deve supportare più di una app di Facebook? Pensa SaaS. – powerboy