• 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.

Hosting forpsi easy 1 pln
+1 głos
155 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 112 wizyt
pytanie zadane 23 października 2022 w JavaScript przez tonn204 Mądrala (7,420 p.)
0 głosów
1 odpowiedź 869 wizyt
pytanie zadane 7 września 2017 w PHP przez kevin Mądrala (5,010 p.)
+1 głos
1 odpowiedź 310 wizyt
pytanie zadane 13 stycznia 2021 w JavaScript przez HowToIT Początkujący (290 p.)

92,079 zapytań

140,733 odpowiedzi

317,692 komentarzy

61,395 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia w koszyku, uzyskując rabat aż -50% (w dniach 24.11 - 29.11 z okazji Black Friday, a potem będzie to -30%) na bilety w wersji "Standard"! Więcej informacji na temat akademii znajdziecie tutaj. Dziękujemy Sekurakowi za tak fajną zniżkę dla Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 15% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...