• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

NODE - RestAPI, JWT Token - zdalne wylogowanie użytkownika.

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
+1 głos
99 wizyt
pytanie zadane 28 lutego 2022 w JavaScript przez rszczepanski02 Obywatel (1,180 p.)
Cześć. Przychodzę z pytaniem dotyczącym zdalnego wylogowania użytkownika przez administratora. Mam zaimplementowaną klasyczną strategię logowania za pomocą jwt / passport-local-strategy (NEST). Akurat to nie ma większego znaczenia. Chodzi mi o logikę działania tego typu funkcji. Powinienem w jakiś sposób przechwycić token zalogowanego użytkownika i go po prostu zniszczyć? Nie za bardzo wiem jak się za to zabrać, z góry dziękuję za pomoc :D

1 odpowiedź

+1 głos
odpowiedź 28 lutego 2022 przez Jakub 0 Pasjonat (23,120 p.)
edycja 28 lutego 2022 przez Jakub 0
 
Najlepsza

JWT ma być z założenia bezstanowy i dylemat o którym wspominasz jest jednym z głównych argumentów przemawiających za jego niestosowaniem do implementacji sesji użytkownika: http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions/

Niebezpieczeństwem przy stosowaniu JWT jest właśnie to, że pozostaje on aktywny po "wylogowaniu" przez ustalony czas. Możesz temu jakoś zaradzić, np:

  • Tworząc black-listę nieaktywnych tokenów (zauważ jednak, że użycie JWT nie wiele Ci wtedy daje, bo za każdym razem i tak musisz robić zapytanie do bazy)
  • Zmieniając fragment secret key do jego wygenerowania.
  • Tworząc tokeny o bardzo krótkim czasie życia i refresh tokeny do pozyskania nowych.

Chcąc by autoryzacja JWT była jednocześnie wygodna dla użytkownika a zarazem bezpieczna musisz się dość napracować. O wiele lepszym rozwiązaniem jest więc najczęściej klasyczny system sesji.

Tu masz przykład dla node: https://www.youtube.com/watch?v=kmAzuH2Lzug

Generalnie bezstanowe tokeny są bardzo przydatne w innych sytuacjach (np. do autoryzacji między mikroserwisami, tworzenia tymczasowych jednorazowych linków itd...).

komentarz 28 lutego 2022 przez rszczepanski02 Obywatel (1,180 p.)
Czy znasz jakieś lepsze alternatywy lokalnej autoryzacji i autentykacji użytkownika?
komentarz 28 lutego 2022 przez Jakub 0 Pasjonat (23,120 p.)
edycja 28 lutego 2022 przez Jakub 0
Już zmodyfikowałem odpowiedź. Najlepiej jak będziesz zapisywał sesje na serwerze (z wykorzystaniem jakiegoś in-memory db jak Redis).
komentarz 28 lutego 2022 przez rszczepanski02 Obywatel (1,180 p.)

Bardzo Ci dziękuję za twoją pomoc smiley

Podobne pytania

0 głosów
0 odpowiedzi 45 wizyt
pytanie zadane 23 października 2022 w JavaScript przez tonn204 Mądrala (7,420 p.)
0 głosów
1 odpowiedź 715 wizyt
pytanie zadane 7 września 2017 w PHP przez kevin Mądrala (5,010 p.)
+1 głos
1 odpowiedź 185 wizyt
pytanie zadane 13 stycznia 2021 w JavaScript przez HowToIT Początkujący (290 p.)

91,278 zapytań

139,942 odpowiedzi

315,130 komentarzy

60,722 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...