Wpis z mikrobloga

#programowanie #nodejs #javascript
Na backendzie przechowuję w sesji (express-session) wszystkich zalogowanych użytkowników, a na froncie trzymam sobie cookie.
Pierwszy raz stawiam coś w oparciu o sesje i ciasteczka dlatego parę pytań:

1. Jaki najlepiej ustawić czas ważności cookiesa? (maxAge)

2. Co zrobić gdy ważność cookiesa się skończy? Mam na froncie nasłuchiwać czy cookies już zniknął i wylogować użytkownika? Czy może jakoś odświeżyć tego cookiesa? Jakie są na to praktyki?

3. Chcę mieć listę wszystkich aktualnie aktywnych użytkowników. Co zrobić jak użytkownik opuści stronę, ale sie nie wyloguje? Dalej będzie widoczny jako aktywny mimo że już opuścił stronę. No chyba że ustawię krótki czas cookiesa?
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

1. To zależy od rodzaju aplikacji, może to być 24h lub nawet 7dni.

2. Możesz sprawdzać przy jakimś requeście od usera czy ważność cookie jest mniejsza niż np.1h i wtedy przedłużyć jego ważność. Sprawa się komplikuje jak chcesz ustawić cookie na bardzo krótki czas.

3. Musisz to mieć w swojej aplikacji? Możesz do tego użyć np. Google Analytics, będziesz mógł śledzić na jakiej są podstronie, ile czasu itd.
  • Odpowiedz
@Alodnog:
Ad. 1
Taki jaki jest ci potrzebny

Ad 2.
Na fronicie nie musisz nic robić. Przecież po stronie serwera ustawiasz czas ważności cookis. Każde odwołanie do serwera przedłuża ważność cookie. (No chyba, że aplikacja i logika jest na frontendzie a do serwera sięgasz tylko po dane - ale wtedy warto rozważyć jwt). Jak ważność cookisa się skończy to serwer nie dostanie identyfikatora sesji trzeba wymusić
  • Odpowiedz
@Alodnog: co do 3 - WebSockety. Jak użytkownik wyjdzie ze strony, to zerwie połączenie, więc masz info. Tym samym kanałem możesz na żywo aktualizować listę dostępnych osób.
  • Odpowiedz
  • 2
@kot_gagarina: Właśnie ogarnąłem że w express-session jest taka właściwość rolling, która ustawiona na true odnawia automatycznie ważność cookie przy każdym requeście. Chyba właśnie użyję tego i ustawię krótki czas cookie
  • Odpowiedz