2013-06-16 1 views
6

Sto utilizzando Passport per registrare/autenticare tramite Facebook. Quando OAuth è successo, Io torno:Autenticazione tramite Facebook con Passportjs: a cosa serve AccessToken, cosa devo memorizzare dopo la registrazione?

  • accessToken
  • refreshToken
  • profile

Ora ... quando un utente si registra con successo utilizzando Facebook, devo conservare accessToken e le informazioni profile . Quando qualcuno vuole effettuare il login e ricomincia il viaggio di nuovo, la mia app torna a accessToken e profile. Il problema è, accessToken è diverso. In realtà mi aspettavo che l'accessToken fosse lo stesso dopo la prima autenticazione ...

A questo punto, collego il mio utente locale con il campo id di Facebook dal profilo. Ma ... come utilizzerei effettivamente accessToken? Ha senso tenerlo? Se è così, perché dovrei davvero tenerlo?

In realtà mi aspetto che accessToken sia lo stesso, e usarlo per abbinare un login riuscito. Ovviamente non posso farlo ... quindi sono confuso!

risposta

4

È necessario memorizzare ID facebook. Dovrebbe essere nell'oggetto profile. Il token di accesso cambierà in base alla politica di autorizzazione di Facebook. Che cosa si dovrebbe fare è

  1. ottenere l'utente di effettuare il login tramite facebook
  2. controllare il suo facebook id contro l'id facebook nel database.

token di accesso scadono spesso come descritto here

+1

Fantastico, grazie mille per il tuo aiuto preciso e conciso! – Merc

+0

Nessun problema @Merc –

8

È necessario mantenere access token, se si desidera eseguire una query API di Facebook a nome del suo utente connesso in-via-facebook. Se si desidera utilizzare Facebook solo per il login, è possibile scartarlo. Se si desidera chiedere a Facebook l'aggiornamento di stato più recente dell'utente, ad esempio, è necessario includere tale accessToken come parametro quando si effettua tale chiamata API. Il punto di accesso è che consente un insieme di operazioni per conto di un utente, ma scade così se cade nelle mani sbagliate non può essere utilizzato per causare tanto danno come un token permanente o la password effettiva dell'utente. Sarà diverso ogni volta dal design.

+0

Grazie! Completa l'altra risposta ... – Merc

+0

Sì! Una grande luce è appena arrivata dopo 2 ore di ricerca e lettura :) – Flavio