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

Node.js Zarządzanie sesjami

VPS Starter Arubacloud
+2 głosów
519 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 (599,730 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 183 wizyt
pytanie zadane 17 stycznia 2020 w JavaScript przez CapTor Nowicjusz (240 p.)
0 głosów
1 odpowiedź 155 wizyt
pytanie zadane 18 sierpnia 2020 w JavaScript przez michael.scott Nowicjusz (200 p.)
0 głosów
1 odpowiedź 101 wizyt
pytanie zadane 27 kwietnia 2020 w JavaScript przez wsnofi Bywalec (2,680 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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 - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...