2013-10-25 22 views
6

Per determinare quando utilizzare un token di aggiornamento per chiedere un nuovo token di accesso, sono a conoscenza di due approcci (di seguito). Uno di questi approcci è possibile senza modificare la libreria passport-google-oauth?Ottieni un token di accesso oauth dal token di aggiornamento in passportjs

1) Il metodo "pre-emptive"

  • Risparmio di tempo la scadenza del token di accesso quando il suo concessa
  • controllare il tempo di scadenza contro l'ora corrente ogni volta che si utilizza un token di accesso per accedere alle API
  • Se il token di accesso non è scaduto, utilizzarlo per accedere alle API
  • Se il token di accesso è scaduta (o vicino ad essere scaduto), fornire il token di aggiornamento per ottenere un nuovo token di accesso

2) Il metodo "gestire fallimento"

  • forniscono sempre token di accesso
  • Se il token di accesso non riesce ad autenticare, forniscono il token di aggiornamento, ottenere un nuovo token di accesso

Grazie. Accolgo anche eventuali alternative.

risposta

4

Si noti che Passport non utilizza attivamente il token di accesso o il token di aggiornamento, se non per recuperare il profilo utente durante il login. L'applicazione è responsabile dell'utilizzo di questi token quando si rendono necessarie le richieste API. Come tale, è possibile implementare entrambi i metodi che descrivi, Passport non è coinvolto nel processo.

Consulta anche: https://github.com/jaredhanson/passport-google-oauth/issues/23

+0

sei un vero eroe :-D – ShrekOverflow

5

ho scritto un plugin per rendere la gestione di questo un po 'più facile: https://github.com/fiznool/passport-oauth2-refresh

+0

Molto bello, grazie - integra il passaporto-google-OAuth e google-api-nodejs-client con edit-google-spreadsheet molto agevolmente. –

+0

Vedere 4. Token dinamico, sotto l'utilizzo di base qui: https://github.com/jpillora/node-edit-google-spreadsheet, dove ora richiama semplicemente a 'refresh.requestNewAccessToken()' –

Problemi correlati