Pytanie Jak zniszczyć Tokeny JWT podczas wylogowania?


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.


18
2018-06-22 06:15


pochodzenie




Odpowiedzi:


JWT jest przechowywany w przeglądarce, więc usuń tokena usuwając plik cookie po stronie klienta

Jeśli potrzebujesz również unieważnić token od strony serwera przed upływem jego czasu wygaśnięcia, na przykład konto usunięte / zablokowane / zawieszone, hasło zmienione, uprawnienia zmienione, użytkownik wylogowany przez administratora, spójrz na Unieważnienie tokenów internetowych JSON dla niektórych wspólnych technik, takich jak tworzenie czarnej listy lub obracających się żetonów


24
2018-06-22 08:13



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
Jesteś po stronie serwera i nie możesz zmuszać przeglądarek do usuwania plików cookie. Ale możesz ustawić wartość pustą i uwzględnić expires w celu unieważnienia wartości cookie. Widzieć stackoverflow.com/questions/5285940/.... Możesz również unieważnić ciasteczko po stronie klienta za pomocą javascript var delete_cookie = function(name) { document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;'; }; - pedrofb
Wielkie dzięki ! Jestem zadowolony z twojej odpowiedzi. - Garima