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

question-closed Mechanizm sesji i Single Page Application

Object Storage Arubacloud
0 głosów
190 wizyt
pytanie zadane 24 marca 2021 w JavaScript przez Jakub 0 Pasjonat (23,120 p.)
zamknięte 24 marca 2021 przez Jakub 0

Witam, po jakimś czasie nauki umiem już zaimplementować na serwerze autoryzacje z użyciem JWT oraz mechanizm sesji (używam express-session + Redis).

Używanie dla SPA tokenu przesyłanego jako response od serwera było dość proste. W zależności od obecności takiego tokenu wewnątrz globalnego stanu aplikacji, reaktywnie zmieniał się renderowany UI. Dodatkowo token był zapisywany w local storage.

Niby dla sesji jest wszystko podobnie, mamy token w postaci ciasteczka. Zastanawiam się jednak nad tym w jaki sposób najlepiej zmieniać stan aplikacji frontendowej w zależności od tego czy jesteśmy zalogowani. Było by to oczywiste gdyby nie httpOnly cookie. Klient nie może sprawdzić obecności takiego ciasteczka.

Przeglądając internet i myśląc nad tym samemu, wpadłem na następujące rozwiązania:

  • Dodatkowy równoległy plik cookie bez właściwości httpOnly.
  • Endpoint API do sprawdzenia czy użytkownik jest zalogowany (wywoływany za każdym razem po załadowaniu/odświeżeniu aplikacji).
  • Rezygnacja z właściwości httpOnly.

Najbardziej stabilny i bezpieczny wydaje mi się pogrubiony przeze mnie sposób. Tak planuje to zrobić, zwłaszcza, że zadziała to zarówno dla zwykłej aplikacji SPA czy też czegoś w rodzaju Universal JS App (Nuxt, Next itd..).

Mimo wszystko nie szkodzi mi zapytać o zdanie doświadczone osoby. Czy to jest najlepszy sposób czy może da się to zrobić do lepiej?

Dziękuje za wskazówki i pozdrawiam serdecznie :)

komentarz zamknięcia: Temat wyczerpany

1 odpowiedź

+2 głosów
odpowiedź 24 marca 2021 przez Comandeer Guru (602,340 p.)
wybrane 24 marca 2021 przez Jakub 0
 
Najlepsza
Jeśli user kliknie przycisk "Wyloguj", to będziesz wiedział, że jest wylogowany, jeśli się zaloguje – że jest zalogowany. W innym wypadku serwer przy dowolnym requeście powinien przecież sprawdzić, czy user jest zalogowany i jeśli nie, zwrócić odpowiedni kod błędu. Dzięki temu jesteś w stanie na froncie wykryć, czy user jest zalogowany bez potrzeby posiadania dodatkowego endpointa.
komentarz 24 marca 2021 przez Jakub 0 Pasjonat (23,120 p.)

@Comandeer, Dzięki :) Ma to sens. Myślę, że pisząc projekt prędzej czy później bym to zauważył.

Przeglądałem stack overflow i nikt nie zwrócił uwagi na ten prosty szczegół... Niby banalne a jednak nie takie oczywiste na początku. Aż mi głupio, że nie od razu o tym pomyślałem. Chyba będę się trochę wstrzymywał przed zadawaniem pytań :)

Podobne pytania

0 głosów
4 odpowiedzi 843 wizyt
pytanie zadane 15 lutego 2019 w JavaScript przez Hunter94 Mądrala (6,290 p.)
0 głosów
0 odpowiedzi 419 wizyt
pytanie zadane 26 marca 2019 w PHP przez MrxCI Dyskutant (8,260 p.)
0 głosów
1 odpowiedź 338 wizyt
pytanie zadane 14 lutego 2018 w JavaScript przez Mateusz Wandzel Nowicjusz (120 p.)

92,632 zapytań

141,502 odpowiedzi

319,882 komentarzy

62,015 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!

...