2016-06-22 55 views
10

Sto usando il plugin jwt e la strategia in hapijs. Sono in grado di creare token jwt durante l'accesso e autenticare altre API utilizzando lo stesso token tramite la strategia 'jwt'. Sto impostando il token in 'request.state.USER_SESSION' come cookie in cui USER_SESSION è il nome del token. Inoltre non sto salvando questi token nel database. Ma come posso distruggere il token jwt al momento del logout. Si prega di suggerire un modo.Come distruggere i token JWT al logout?

risposta

14

Il JWT è memorizzato sul browser, in modo rimuovere il token di eliminare il cookie al lato client

Se è necessario anche invalidare il token dal lato server prima della sua data di scadenza, ad esempio account eliminato/blocco/sospensione, password modificata, permessi modificati, utente disconnesso da admin, dai uno sguardo a Invalidating JSON Web Tokens per alcune tecniche comuni come la creazione di una lista nera o token rotanti

+0

Sono d'accordo con la tua risposta. Sto impostando il token jwt nel cookie con 'reply.state (' USER_SESSION ', {jwtToken});' dove USER_SESSION è il nome del cookie. Quindi mi puoi suggerire quale comando dovrei eseguire per cancellare il cookie dallo stato in hapijs? – Garima

+0

Sei nel lato server e non puoi forzare i browser a cancellare un cookie. Ma puoi impostare il valore su vuoto e includere il campo 'expires' per invalidare il valore del cookie. Vedi http://stackoverflow.com/questions/5285940/correct-way-to-delete-cookies-server-side. Puoi anche invalidare i cookie nel lato client con javascript 'var delete_cookie = function (name) { document.cookie = name + '=; expires = Thu, 01 Jan 1970 00:00:01 GMT;'; }; ' – pedrofb

+0

Grazie mille! Sono soddisfatto della tua risposta. – Garima