2016-06-16 32 views
12

Sto utilizzando jsonwebtoken nell'applicazione API NodeJs per l'autenticazione dell'utente nella mia applicazione API. Il flusso che ho installato è la seguente:Aggiorna token Jsonwebtoken

1) L'utente registra tramite registrazione API e il token di accesso viene generato utilizzando il seguente:

var jwt = require('jsonwebtoken'); 
var token = jwt.sign(user, _conf.authentication.superSecret, { 
    expiresIn: 1440 // I intend to keep it short. 
}); 

2) Il token scade in 24 ore per esempio. Questo token viene restituito all'applicazione mobile client da utilizzare come intestazione in tutte le successive richieste API.

Voglio sapere come faccio a funzionare con il token di aggiornamento per jwt. Attualmente non ho un meccanismo per il token di aggiornamento. Quindi se il token scade tra 24 ore voglio che il client (app mobile) sia in grado di richiedere un nuovo token di accesso. Grazie in anticipo.

+0

Date un'occhiata al mio posto qui: http://stackoverflow.com/questions/38766688/understanding-json-web-token-jwt-in-context-of-web-authentication si e xplains una configurazione usando i token di aggiornamento. –

risposta

20

Ho avuto lo stesso problema in un progetto.

1) Ho creato il token di aggiornamento e l'ho restituito quando l'utente ha effettuato l'accesso (con jsonwebtoken). Ho salvato il token di aggiornamento con l'utente.

2) Quando l'utente invia una richiesta con il token scaduto, il server restituisce 401.

3) ho implementato un nuovo percorso per aggiornare il token. Riceve il token di aggiornamento e l'utente come param e restituisce un nuovo token (jsonwebtoken).

4) (opzionale) È possibile implementare un meccanismo per invalidare un token di aggiornamento, nel caso in cui qualcuno ha rubato lo

Ho basato la mia applicazione in questo post, veramente buoni frammenti:

Refresh token in JWT (Node.js implementation)

speranza che aiuta

+1

Usando questa tecnica per il mio nuovo progetto, grazie. –

+0

Fammi sapere se hai bisogno di aiuto o altro –