2016-07-17 206 views
5

Quali approcci ci sono per avvisare l'utente della sessione scaduta nell'applicazione React/Redux?Come avvisare quando Session (JWT) è scaduto in React/Redux

Il server autentica l'utente con il token JWT e React in realtà non conosce l'esistenza di tale token, il browser lo gestisce automaticamente. In caso di recupero e pubblicazione di Redux imposta sia i dati che gli errori nello stato.

È il modo tipico di controllare passivamente la risposta quando si tenta di accedere all'endpoint dell'API, utilizzare il campo Scade per impostare il timeout lato client, assicurare attivamente la validità della sessione o qualche altra tecnica? Sono particolarmente preoccupato per le modifiche non salvate che l'utente fa e vorrei informare l'utente della sessione terminata il prima possibile.

risposta

3

Il mio approccio attuale è quella di memorizzare il JWT nel localStorage, quando l'applicazione viene avviata, sto caricando il token, cercando di caricare i dati degli utenti con il token, se non riesce, solo reindirizzare/login

Poi Sto usando il jwt solo nel modulo API, non nel negozio.

mio modulo Api sa basa su richieste, quando utilizzare il token e quando non

Se il modulo api riconosce un'autenticazione fallita, rimuove anche il token dalla localStorage .. così la prossima volta non può essere caricato .

Il mio modulo api, che è anche separato dal redux, sa quando usare jwt, e quando no.

Per fare questo lavoro più astratto ho creato un middleware, che reagisce a ogni azione, se il carico utile è un error e il valore Not Authenticated

questo è l'errore che sto trowing nel modulo di api, se il la risposta del server non riesce a causa di auth. Il actionCreator invia l'errore in catch e il middleware reagisce.

Quindi attualmente sta a voi come farlo, tutto il codice di cui sto parlando è ~ 100 LOC o così .. solo alcuni metodi che gestiscono queste cose.

+1

Un sacco di persone, direi, stanno utilizzando lo stesso meccanismo di middleware per l'autenticazione, potrebbe aiutare se hai mostrato come ti sembra. – Himmel