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

Node.js Zarządzanie sesjami

Object Storage Arubacloud
+2 głosów
530 wizyt
pytanie zadane 15 lipca 2021 w JavaScript przez yapyap Obywatel (1,730 p.)

Witam, posiadam server na node.js / express z sesjami zapisywanymi w ciasteczkach, jeśli trzeba będzie zmienić sposób zapisu sesji to nie ma problemu, ale wolałbym nie.

 

W jaki sposób zarządzać sesjami tak aby np. zniszczyć wszystkie sesje danego użytkownika? Załóżmy że komuś się włamali na konto i po zmianie hasła chce aby wszystkie poprzednie sesje przestały istnieć, jak tego dokonać?

 

Obecne rozwiązanie wygląda tak że przy tworzeniu sesji jest dodawana do tablicy z sesjami wraz z id użytkownika np:

{
session : session,
id : 'USERNAME'
}

jeśli ktoś da np. "Zniszcz wszystkie aktywne sesje" to ta tablica z obiektami jest iterowana i wszystkie sesje z nazwą użytkownika np. "USERNAME" są niszczone metodą destroy()

Dziala? Działa, ale nie wiem czy tak to powinno wyglądać

2 odpowiedzi

+4 głosów
odpowiedź 15 lipca 2021 przez Comandeer Guru (600,810 p.)
wybrane 19 lipca 2021 przez yapyap
 
Najlepsza
Jak najbardziej taki sposób jest poprawny. Jedyny problem, jaki widzę, to taki, że w chwili, gdy aplikacja z jakiegoś powodu się wyglebi, to wszyscy użytkownicy zostaną wylogowani. Mimo wszystko tego typu informacje warto trzymać w jakiejś bazie danych, dzięki czemu dane są trwałe.

Można też pokusić się o usunięcie ciasteczka, jeśli zawiera dane o sesji, której nie ma w bazie. Nie jest to konieczne, ale… eleganckie ;)
0 głosów
odpowiedź 15 lipca 2021 przez krissto7 Gaduła (3,100 p.)
Zależy od tego jakiej biblioteki używasz.

Możesz to zrobić w następujący sposób:

1. app.use(cookieParser());

2. res.cookie('cookiename', 'cookievalue', { maxAge: 999999}); // cookievalue może być jako object(tak jak potrzebujesz)

3. aby usunąć ciasteczko odnosisz się do tej samej nazwy czyli:

res.clearCookie('cookiename');

4. Jeżeli chcesz wszystkie naraz to nie wiem czy jest konkretnie taka metoda:

jeśli potrzebujesz zrobić to od strony frontu to możesz spróbować

1.https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies/remove

2. https://www.npmjs.com/package/delete-all-cookies

Od strony backendu to może po prostu przejdziesz przez wszystkie ciasteczka używając req.cookies.
komentarz 15 lipca 2021 przez ScriptyChris Mędrzec (190,190 p.)

1.https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies/remove

Tylko, że ta metoda jest dostępna z poziomu wtyczki do przeglądarki, a nie bezpośrednio z poziomu strony - tam do dyspozycji jest document.cookie.

Podobne pytania

0 głosów
2 odpowiedzi 185 wizyt
pytanie zadane 17 stycznia 2020 w JavaScript przez CapTor Nowicjusz (240 p.)
0 głosów
1 odpowiedź 157 wizyt
pytanie zadane 18 sierpnia 2020 w JavaScript przez michael.scott Nowicjusz (200 p.)
0 głosów
1 odpowiedź 102 wizyt
pytanie zadane 27 kwietnia 2020 w JavaScript przez wsnofi Bywalec (2,680 p.)

92,551 zapytań

141,399 odpowiedzi

319,531 komentarzy

61,938 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich 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 10% 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!

...