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

Vue.js przechowywanie informacji o zalogowanym użytkowniku

Object Storage Arubacloud
0 głosów
177 wizyt
pytanie zadane 4 sierpnia 2021 w JavaScript przez mi-20 Stary wyjadacz (13,190 p.)
Hej, po zalogowaniu się użytkownika przechowuję jego token w localStorage, zasadniczo dzięki temu łatwo też można sprawdzić czy użytkownik jest zalogowany. Jednak chciałbym mieć też dostęp do jego imienia, nazwiska, avatara albo tego czy jest użytkownikiem premium. Nie chciałbym za każdym razem pobierać takich danych. Imię i nazwisko + avatar np wyświetlają się w menu więc byłyby pobierane za każdym razem, jak można to rozwiązać?

Teoretycznie po logowaniu można by w localStorage przechowywać cały obiekt użytkownika, nie jestem jednak pewien czy to dobry pomysł.

Spodziewam się że można użyć Vuex, tutaj jednak prosiłbym o więcej szczegółów co i jak aby to zrobić

Dzięki za sugestię.

1 odpowiedź

+1 głos
odpowiedź 5 sierpnia 2021 przez niezalogowany
wybrane 10 sierpnia 2021 przez mi-20
 
Najlepsza
Vuex służy do przechowywania globalnego stanu aplikacji i w przypadku informacji o zalogowanym użytkowniku jest bardzo dobrym rozwiązaniem. Będziesz miał prosty dostęp do tych danych z każdego miejsca w kodzie. Po szczegóły implementacyjne zapraszam do dokumentacji

Dodatkowo w kontekście uwierzytelniania warto zastosować dwie techniki

1. Jeśli istnieje token, należy odpytać API o dane użytkownika PRZED inicjalizacją instancji vue. Dzięki temu zgrabnie można obsłużyć przekierowania na stronę logowania, gdy niezalogowany użytkownik próbuje dostać się pod adres wymagający uwierzytelnienia (i w drugą stronę, gdy zalogowany użytkownik próbuję dostać się pod adres logowania)

2. Jeśli API potrafi zwrócić błąd stricte o tym, że dany token nie jest zalogowany w systemie, należy dodać obsługę takiego błędu w interceptorze klienta HTTP i automatycznie wylogować użytkownika. W sytuacji gdy użytkownik stracił ważność tokena, a nadal ma otwartą aplikację - jakakolwiek akcja go wyloguje, zamiast przenosić na stronę błędu
komentarz 5 sierpnia 2021 przez mi-20 Stary wyjadacz (13,190 p.)
okej, ale taki obiekt powinien być gdzieś przechowywany (obiekt użytkownika oczywiście) czy wykorzystać Vuex do pobierania danych za każdym razem?
1
komentarz 5 sierpnia 2021 przez niezalogowany
Dane użytkownika pobierasz raz na starcie aplikacji i zapisujesz je w storze (vuex)
komentarz 10 sierpnia 2021 przez mi-20 Stary wyjadacz (13,190 p.)
Okej, do zapisywania danych użyłem vuex-persistedstate żey dane utrzymywały się po odświeżeniu. Jednak o ile dane użytkownika i dane o logowaniu mogę zmienić po zalogowaniu to przechowuję jeszcze inne ustawienia aplikacji które chciałbym aby były pobierane od nowa za każdym razem po wejściu na stronę lub powiedzmy co 1h. Da się to zrobić?
komentarz 10 sierpnia 2021 przez niezalogowany
tak, przed startem aplikacji wypełnić store potrzebnymi danymi (w main.js o ile dobrze pamiętam)
komentarz 18 sierpnia 2021 przez mi-20 Stary wyjadacz (13,190 p.)
okej, ale w main.js pobrać od nowa dane z bazy i wypełnić store?
komentarz 18 sierpnia 2021 przez niezalogowany
tak, wszystko, co potrzebujesz przed uruchomieniem aplikacji sciągaj w tym miejscu

Podobne pytania

+1 głos
0 odpowiedzi 156 wizyt
0 głosów
1 odpowiedź 205 wizyt
pytanie zadane 21 sierpnia 2018 w JavaScript przez mi-20 Stary wyjadacz (13,190 p.)
+6 głosów
2 odpowiedzi 856 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...