Wir haben Registrierung und Anmeldung über Facebook mit Rails, Devise und Omniauth. Wir sind auf Heroku gehostet und haben zwei Web-Dynos laufen.devise + omniauth facebook: current_user nil nach sign_in
manchmal Login mit Facebook ist fehlgeschlagen. Der eigentliche Händedruck zwischen unserer App und Facebook ist in Ordnung. Tatsächlich ist @user im Code unten eine tatsächliche Benutzermodellinstanz, der omniauth data Hash enthält alle Daten vom FB, sign_in scheint erfolgreich UND der current_user ist gesetzt.
Die Client-Seite führt eine Redirect (verschiedene Aktionen basierend auf Login-Kontext) zu einer anderen URL auf unserer Website nach erfolgreicher Anmeldung. Bei dieser URL suchen wir nach current_user ... aber current_user gibt nil zurück. Wenn der Anmeldevorgang einige Male wiederholt wird, funktioniert es schließlich.
Wir sind auf
- Rails 3.2
- 2.1.2 Devise
- Omniauth-facebook 1.4.0
- Rubin 1.9.3 P194
bekam ein sehr ähnliches Problem (in meinem ist der current_user immer nil). Einige Leute schlagen vor, den Fälschungsschutz abzuschalten, werfen Sie einen Blick hier: https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview#google – chrmod
Bitte veröffentlichen Sie Ihre find_for_facebook-Definition von Ihrem Benutzermodul. – xvidun
Dies ist ein nettes Tutorial: http://sreeharikmarar.blogspot.com/2013/01/omniauth-devise-authentication-using.html – duykhoa