2013-06-16 23 views
6

Używam usługi Passport do rejestrowania/uwierzytelniania za pomocą Facebooka. Kiedy OAuth jest udany, jestem zwrócony:Uwierzytelnianie za pomocą Facebooka z Passportjs: co to jest accessToken, co mam zapisać po rejestracji?

  • accessToken
  • refreshToken
  • profile

... Teraz, gdy użytkownik pomyślnie rejestruje za pomocą Facebooka, przechowywać accessToken i profile informacji . Gdy ktoś chce się zalogować i ponownie wykonuje ruchy oauth, moja aplikacja ponownie otrzymuje accessToken i profile. Problem jest inny, accessToken jest inny. Właściwie oczekiwałem, że token accessToken będzie taki sam po pierwszym uwierzytelnieniu ...

W tym momencie łączę mojego lokalnego użytkownika z polem facebookowym id z profilu. Ale ... w jaki sposób faktycznie użyć accessToken? Czy to ma sens, żeby go zatrzymać? Jeśli tak, dlaczego miałbym go zachować?

Rzeczywiście oczekuję, że token dostępu będzie taki sam i użyje go do dopasowania pomyślnego logowania. Oczywiście nie mogę tego zrobić ... więc jestem zdezorientowany!

Odpowiedz

4

Powinieneś przechowywać ID na Facebooku. Powinien znajdować się w obiekcie profile. Token dostępu zmieni się zgodnie z polityką autoryzacji facebook. Co należy robić to

  1. Get użytkownika, aby zalogować się przez facebook
  2. Sprawdź swój identyfikator facebook facebook przeciwko ID w bazie danych.

tokeny dostępu wygasa często jak opisano here

+1

Fantastycznie, dziękuję bardzo za dokładną, zwięzłą pomoc! – Merc

+0

Bez problemu @Merc –

8

trzeba zachować accessToken jeśli chcesz kwerendy API Facebooka w imieniu swojej zalogowanych-via-facebook użytkownika. Jeśli chcesz używać Facebooka tylko do logowania, możesz go odrzucić. Jeśli chcesz zapytać facebooka o najnowszą aktualizację statusu, na przykład, musisz uwzględnić ten parametr accessToken jako parametr podczas wykonywania tego wywołania API. Punkt accessToken polega na tym, że zezwala on na zestaw operacji w imieniu użytkownika, ale wygasa, więc jeśli wpadnie w niepowołane ręce, nie może być użyty do spowodowania tak dużych obrażeń jak stały token lub rzeczywiste hasło użytkownika. Za każdym razem będzie inny za każdym razem według projektu.

+0

Dziękujemy! Uzupełnia drugą odpowiedź ... – Merc

+0

Tak! Po 2h szukania i czytania przyszło wielkie światło :) – Flavio