/ / facebook автентиране с omniauth - рубинка по релси, facebook, измисли, omniauth

удостоверяване на facebook с omniauth - ruby-on-rail, facebook, измислица, omniauth

Добавям Facebook удостоверяване с omniauth към моята кандидатура според Райън Бейтс скрийнкаст

Има проблем с функцията за създаване в контролера за удостоверяване. функцията за създаване трябва да се справи с обратната връзка с Facebook (която изглежда добре).

Грешката в регистрационния файл е:

NoMethodError (недефиниран метод "автентикации" за нула: NilClass)

Грешката се отнася за този ред в функцията за създаване в контролера за удостоверяване:

current_user.authentications.find_or_create_by_provider_and_uid (auth ["доставчик"], auth ["uid"])

Какво мислите, че е проблемът?

Благодаря,

Одед

Отговори:

4 за отговор № 1

Проблемът е, че не сте влезли когаопитате да удостоверите, така че current_user е нула. Влезте и след това удостоверете, че ще бъдете пренасочени към страницата с индекси за удостоверяване. Това е начинът, по който го е направил в релсите. В следващия епизод той се обръща към потребителя, в който не е влязъл.


1 за отговор № 2

Вашият current_user е нула, така че когато се опитате да получите достъп до удостоверения на нулев обект, получавате съобщението за грешка, което виждате.

Трябва да поправите current_user метод.


0 за отговор № 3

Имах един и същ проблем, но е решен. Причината, поради която тази грешка е хвърлена, е, че създаденото от AuthenticationController действие очаква да има в момента влезли потребител и се опитва да намери или създаде нова идентификация за този потребител. Тъй като се опитваме да удостоверим автентичността си, без да се е регистрирал за първи път с потребителско име и парола, променливата current_user ще бъде нула.

Следвайте връзката, за да решите проблема http://railscasts.com/episodes/236-omniauth-part-2?view=asciicast