/ / facebook authentication with omniauth - ruby-on-rails, facebook, devise, omniauth

uwierzytelnianie facebook z omniauth - ruby-on-rails, facebook, devise, omniauth

Dodaję uwierzytelnianie Facebooka z omniauthem do mojej aplikacji według Ryana Batesa screencast

Wystąpił problem z funkcją tworzenia w kontrolerze uwierzytelniania. funkcja create powinna obsługiwać wywołanie zwrotne facebook (które wydaje się być w porządku).

Błąd w pliku dziennika to:

NoMethodError (niezdefiniowana metoda "uwierzytelnianie" dla zer: NilClass)

Błąd odnosi się do tego wiersza w funkcji tworzenia w kontrolerze uwierzytelniania:

current_user.authentications.find_or_create_by_provider_and_uid (auth ["provider"], auth ["uid"])

Jak myślisz, jaki jest problem?

Dzięki,

Oded

Odpowiedzi:

4 dla odpowiedzi № 1

Problem polega na tym, że nie jesteś zalogowany, kiedypróbujesz uwierzytelnić, w ten sposób current_user jest zerowy. Zaloguj się, a następnie uwierzytelnij, a zostaniesz przekierowany na stronę indeksu autentykacji. Tak właśnie zrobił to w raporcie. W następnym odcinku zwraca się do użytkownika, który nie jest zalogowany.


1 dla odpowiedzi nr 2

Twój current_user jest zerowe, więc podczas próby uzyskania dostępu do uwierzytelniania na obiekcie zerowym pojawia się komunikat o błędzie, który widzisz.

Musisz naprawić swoje current_user metoda.


0 dla odpowiedzi № 3

Miałem ten sam problem, ale został rozwiązany. Przyczyna tego błędu polega na tym, że działanie tworzenia kontrolera AuthenticationController spodziewa się, że jest zalogowany użytkownik i próbuje znaleźć lub utworzyć nowe uwierzytelnienie dla tego użytkownika. Podczas próby uwierzytelnienia bez zalogowania się po raz pierwszy przy użyciu nazwy użytkownika i hasła zmienna current_user będzie zerowa.

Kliknij link, aby rozwiązać problem http://railscasts.com/episodes/236-omniauth-part-2?view=asciicast