Posiadamy rejestrację i logowanie przez facebook za pomocą szyn, devise i omniauth. Jesteśmy hostowani na Heroku, prowadząc dwa dynamo sieciowe.devise + omniauth facebook: current_user zero po sign_in
czasami logowanie przy użyciu Facebooka kończy się niepowodzeniem. Rzeczywisty handshake między naszą aplikacją a Facebookiem jest w porządku. W rzeczywistości w kodzie poniżej @user jest rzeczywistą instancją modelu użytkownika, a Hash danych Omniauth zawiera wszystkie dane z FB, sign_in wydaje się sukcesem ORAZ jest ustawiony current_user.
Strona klienta wykonuje przekierowanie (różne akcje w oparciu o kontekst logowania) do innego adresu URL w naszej witrynie po udanym logowaniu. Przy tym adresie URL sprawdzamy dla current_user ... ale current_user zwraca zero. Jeśli proces logowania zostanie powtórzony kilka razy, w końcu zadziała.
Jesteśmy na
- Rails 3.2
- opracować 2.1.2
- Omniauth-facebook 1.4.0
- Ruby 1.9.3 p194
ma bardzo podobny problem (w moim current_user jest zawsze zerowy). Niektórzy ludzie sugerują, aby wyłączyć ochronę przed fałszerstwami, zajrzyj tutaj: https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview#google – chrmod
Proszę zaksięgować swoją definicję find_for_facebook z modułu użytkownika. – xvidun
To jest ładny samouczek: http://sreeharikmarar.blogspot.com/2013/01/omniauth-devise-authentication-using.html – duykhoa