2016-06-22 23 views
10

Używam wtyczki jwt i strategii w hapijs. Jestem w stanie stworzyć token jwt podczas logowania użytkownika i uwierzytelnić inne API przy użyciu tego samego tokena poprzez strategię "jwt". Ustawiam token w pliku "request.state.USER_SESSION" jako plik cookie, w którym nazwa tokena USER_SESSION. Również nie zapisuję tego tokena w bazie danych. Ale jak mogę zniszczyć token jwt w momencie wylogowania. Proszę sugerować sposób.Jak niszczyć żetony JWT przy wylogowaniu?

Odpowiedz

14

JWT jest przechowywana w przeglądarce, więc usunąć token wykreślającej ciasteczko po stronie klienta

Jeśli potrzebujesz także unieważnić token od strony serwera przed czasem wygaśnięcia, na przykład konto usunięte/zablokowane/zawieszone, zmieniono hasło, zmieniono uprawnienia, użytkownik wylogował się admin, spójrz na Invalidating JSON Web Tokens, aby zapoznać się z niektórymi wspólnymi technikami, takimi jak tworzenie czarnej listy lub obracających się tokenów.

+0

Zgadzam się z Twoją odpowiedzią. Ustawiam token jwt w cookie przez "answer.state (" USER_SESSION ", {jwtToken}); gdzie USER_SESSION jest nazwą pliku cookie. Czy możesz mi zasugerować, jakie polecenie powinienem uruchomić, aby usunąć plik cookie ze stanu hapijs? – Garima

+0

Jesteś po stronie serwera i nie możesz wymusić na przeglądarce usunięcia pliku cookie. Ale możesz ustawić wartość na pustą i zawierać pole 'expires', aby unieważnić wartość cookie. Zobacz http://stackoverflow.com/questions/5285940/correct-way-to-delete-cookies-server-side. Możesz również unieważnić ciasteczko po stronie klienta za pomocą javascript 'var delete_cookie = function (name) { document.cookie = name + '=; expires = czw, 01 stycznia 1970 00:00:01 GMT;'; }; ' – pedrofb

+0

Wielkie dzięki! Jestem zadowolony z twojej odpowiedzi. – Garima

Powiązane problemy