2015-07-29 16 views
5

Sto lavorando alla mia app RoR4 per consentire agli utenti di accedere tramite account esistente facebook. Ho registrato un'app per Facebook (una versione live e testata) e memorizzato la sua API e il suo segreto in development.rb. Ho usato omniauth-facebook e ideato gemme e ho riscontrato un problema "Csrf detected".Rails 4 + omniauth facebook - csrf rilevato

il codice della mia applicazione è highy ispirato da questa blogpost: http://sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/

ho visto una soluzione da un post StackOverflow datato 2 anni fa (Rails + omniauth + facebook - csrf detected) - ma la versione più recente omniauth-facebook è molto maggiore di quello registrato . Ad ogni modo, ho provato a tornare alla gemma omniauth-facebook alla versione 1.4.1 e ho ancora riscontrato questo problema.

gemme

oauth2 (1.0.0) 
omniauth (1.2.2) 
omniauth-facebook (2.0.1) 
omniauth-oauth2 (1.3.1) 

Idee?

errori nel registro

(facebook) Callback phase initiated. 
(facebook) Callback phase initiated. 
(facebook) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected 

risposta

3

ho problema simile con dispositivo e omniauth-facebook, ma è stato un mio errore.

In precedenza ho aggiunto ID e segreti di Facebook in entrambi gli inizializzatori device.rb e omniauth.rb (Entrambi sono inizializzatori nella cartella config/initializers). Ho rimosso queste configurazioni di Facebook da omniauth.rb e riavviato il server, e funziona.

Controllare il proprio device.rb e altri inizializzatori relativi a omniauth.

Potrebbe funzionare ..

+0

Hai ragione. Ho fatto lo stesso errore pure. – user1818524

+0

intendi 'devise.rb'? – 0x4a6f4672

+0

Ho avuto lo stesso problema. Avevo messo l'id e il segreto della mia app sia nell'inizializzatore di elaborazione che nell'inizializzatore di omniauth. La rimozione delle credenziali duplicate in devise.rb risolve il problema. – magagnon

Problemi correlati