2012-07-18 14 views
5

Questo è l'errore che vedo quando provo ad accedere tramite facebook, vedo sempre quell'errore. Non riesco a liberarmene:Rails 3.2 + Facebook auth + CSRF FAILURE

Impossibile autorizzarti da Facebook perché "Csrf rilevato".

ho messo un salto:

skip_before_filter :verify_authenticity_token 

sulla richiamata Omniauth, ma ancora ottengo l'errore. Questo è in ambienti sia locali che prod (heroku). Ho impostato le variabili d'ambiente heroku. Qualche idea?

risposta

6

ho scoperto che il problema era la gemma era troppo nuovo e passando un colpo di testa STATE su Facebook, che fb non voleva. Ho riattivato la versione gem di omniauth-facebook e ha funzionato

+0

A quale versione è stato eseguito il rollback? –

+4

Ho avuto lo stesso problema, il downgrade di omniauth-facebook a 1.4.0 ha risolto il problema. –

+0

https://github.com/mkdynamic/omniauth-facebook/issues/75 e https://github.com/intridea/omniauth-oauth2/issues/20 per ulteriori dettagli – Nevir

0

Le inoltriamo un'intestazione P3P magari aggiungere ...

before_filter :set_p3p 
private 

def set_p3p 
    headers['P3P'] = 'CP="ALL DSP COR CURa ADMa DEVa OUR IND COM NAV"' 
end 

al controller dell'applicazione

7

Ho avuto lo stesso problema si ha nello stesso giorno !! Ho pensato che fosse un aggiornamento gemma o qualcosa del genere ma non del tutto. Con un debug profondo ho scoperto che omniauth "fase di callback avviata". è stato chiamato due volte.

E 'stato a causa di una stupida doppia inizializzazione del

fornitore: facebook, .....

Uno in config/inizializzatori/devise.rb e in un altro inizializzatore.

spero che vi darà un suggerimento per trovare il vostro errore

+1

Ho scoperto che il problema era che la gemma era troppo nuova e che passava a una intestazione STATE su Facebook, che fb non voleva. Ho riattivato la versione gemma omniauth-facebook e ha funzionato. – tesserakt

+0

+1, Fantastico !! Hai salvato la mia giornata !! Grazie :) – Surya

+0

Stavo riscontrando questo problema con un altro fornitore di omniauth e non sono riuscito a capirlo fino a quando non lo avessi visto. Grazie! – Arrel