2016-06-22 7 views
10

Ich benutze jwt plugin und Strategie in hapijs. Ich bin in der Lage, JWT-Token zu erstellen, während ich mich anmelde, und andere APIs mit demselben Token über die 'JWT'-Strategie zu authentifizieren. Ich setze das Token in 'request.state.USER_SESSION' als Cookie, wobei USER_SESSION der Tokenname ist. Auch ich speichere diese Token nicht in der Datenbank. Aber wie kann ich jwt Token zum Zeitpunkt der Abmeldung zerstören. Bitte schlagen Sie einen Weg vor.Wie kann man JWT-Token beim Abmelden zerstören?

Antwort

14

Die JWT auf Browser gespeichert, so entfernen Sie das Token das Cookie auf Client-Seite zu löschen

Wenn Sie auch die Token von Server-Seite vor Ablauf der Zeit ungültig zu machen, benötigen, beispielsweise gelöschtes Konto/blockiert/suspendiert, Passwort geändert, Berechtigungen geändert, Benutzer von Admin ausgeloggt, sehen Sie sich Invalidating JSON Web Tokens für einige Commons Techniken wie Erstellen einer Blacklist oder Drehen von Tokens

+0

Ich bin mit Ihrer Antwort einverstanden. Ich setze das jwt-Token in Cookie durch 'reply.state (' USER_SESSION ', {jwtToken});' wobei USER_SESSION der Name des Cookies ist. Kannst du mir vorschlagen, welchen Befehl ich ausführen soll, um den Keks vom Zustand in hapijs zu befreien? – Garima

+0

Sie befinden sich auf der Serverseite und Sie können Browser nicht zwingen, ein Cookie zu löschen. Sie können den Wert jedoch auf leer setzen und das Feld "expires" einschließen, um den Cookie-Wert ungültig zu machen. Siehe http://stackoverflow.com/questions/5285940/correct-way-to-delete-cookies-server-side. Sie können client auch auf der Client-Seite mit Javascript ungültig machen 'var delete_cookie = function (name) { document.cookie = name + '=; abläuft = Do, 01 Jan 1970 00:00:01 GMT;'; }; ' – pedrofb

+0

Vielen Dank! Ich bin mit deiner Antwort zufrieden. – Garima

Verwandte Themen