Odjava
Kratki sažetak
Odjava omogućuje korisniku prekid sesije iz aplikacije. U globalnom shellu postoje dva dokazana toka: odjava iz korisničkog ili bočnog izbornika koja poziva POST /auth/sign-out, te posebna ruta /logout koja prikazuje potvrdu, briše localStorage token i vodi na web prijavu.
Najvažnije koristi:
- Smanjuje rizik da netko drugi nastavi raditi pod vašim računom.
- Backend sign-out briše access i refresh kolačiće.
- Posebna logout stranica traži potvrdu prije preusmjeravanja.
Kada koristiti ovu značajku
Koristite odjavu kada želite:
- završiti rad na aplikaciji,
- napustiti aplikaciju na dijeljenom računalu,
- riješiti stanje istekle ili neispravne sesije.
Ova značajka je posebno korisna za:
- sve prijavljene korisnike,
- korisnike na javnim ili dijeljenim računalima,
- administratore koji rade s osjetljivim podacima klijenata.
Prije nego što počnete
Prije korištenja provjerite sljedeće:
- spremili ste promjene u otvorenom modulu,
- završili ste upload ili uvoz koji ne želite prekinuti,
- znate da će vas aplikacija nakon odjave vratiti prema prijavi ili reloadu.
Napomena: Odjava iz menija i ruta /logout nisu identično implementirane u pregledanom kodu.
Brzi početak
U ovom primjeru pokazujemo odjavu iz korisničkog izbornika.
- Kliknite avatar u zaglavlju.
- Kliknite Odjava.
- Aplikacija poziva backend sign-out.
- Nakon uspjeha stranica se ponovno učitava.
- Ako sesija više nije valjana, aplikacija vodi na prijavu.
- Zatvorite karticu ako završavate rad.
Nakon toga trebali biste vidjeti: prekinutu sesiju ili ekran prijave.
Detaljne upute
Korak 1: Odaberite mjesto odjave
Odjava je dostupna u korisničkom izborniku, u bočnoj navigaciji i na ruti /logout.
Primjer:
POST /auth/sign-outSnimka zaslona
odjava u korisničkom izborniku
Alt tekst: Korisnički izbornik s opcijom Odjava.
Korak 2: Potvrdite ako se traži
Bočna navigacija koristi potvrdu kroz LiberoAlertDialog, a /logout prikazuje zasebnu karticu s gumbima Povratak i Odjavi se.
Snimka zaslona
dijalog potvrde odjave
Alt tekst: Potvrda odjave s akcijama za povratak i nastavak odjave.
Korak 3: Pričekajte završetak
Backend sign-out briše kolačiće i refresh token iz repozitorija. Ruta /logout lokalno uklanja userstore.token i preusmjerava na REACT_APP_WEB_URL + "/sign-in".
Primjer iz prakse
Zamislimo da računovođa završava rad na računalu u uredu koje koristi više ljudi.
Scenarij:
- Korisnik: računovođa
- Cilj: završiti sesiju nakon rada
- Problem: drugi korisnik ne smije nastaviti rad u otvorenoj sesiji
- Rješenje: koristi Odjava iz profila ili bočne navigacije
Rezultat:
Sesija se prekida i aplikacija više ne bi trebala dopuštati rad bez nove prijave.
Showcase: kako značajka izgleda u aplikaciji
Pregled zaslona
Snimka zaslona
opcije odjave u korisničkom i bočnom izborniku
Što korisnik vidi:
- opciju Odjava,
- potvrdu u nekim tokovima,
- preusmjeravanje ili reload nakon odjave.
Primjer konfiguracije
Snimka zaslona
stranica /logout s karticom potvrde
Preporučena konfiguracija za početnike:
| Postavka | Preporučena vrijednost | Zašto je korisna |
|---|---|---|
| Odjava nakon rada | Da | Štiti pristup podacima |
| Spremanje prije odjave | Da | Izbjegava gubitak promjena |
| Korištenje potvrde | Da gdje je dostupno | Smanjuje slučajnu odjavu |
Najčešće radnje
Kako se odjaviti iz profila
- Kliknite avatar.
- Kliknite Odjava.
- Pričekajte reload.
Kako se odjaviti iz bočne navigacije
- Kliknite Odjava u dnu bočne navigacije.
- Potvrdite odjavu.
- Pričekajte backend sign-out.
Kako se odjaviti preko /logout
- Otvorite
/logout. - Kliknite Odjavi se.
- Aplikacija uklanja lokalni token i vodi na prijavu.
Dobre prakse
Za najbolje rezultate:
- odjavite se na dijeljenim računalima,
- spremite dokumente prije odjave,
- ne zatvarajte tab dok backend odjava traje,
- koristite
/logoutako trebate posebnu potvrdu odjave.
Izbjegavajte:
- ostavljanje aplikacije otvorene preko noći na javnom uređaju,
- odjavu usred uvoza bez provjere statusa,
- dijeljenje korisničkih podataka za prijavu.
Napredne mogućnosti
Ako trebate više kontrole, možete koristiti:
Backend sign-out
POST /auth/sign-out briše access cookie, dohvaća refresh token, briše ga iz token repozitorija i briše refresh cookie.
Query reset
Frontend useSignOut nakon uspjeha resetira query za trenutnog korisnika.
Logout ruta
Ruta /logout koristi lokalni token userstore.token, a zatim preusmjerava na web sign-in. Razlog postojanja paralelnog toka treba dodatno dokumentirati.
Dozvole i pristup
Za korištenje ove značajke potrebne su sljedeće dozvole:
| Radnja | Potrebna uloga/dozvola |
|---|---|
| Odjava iz menija | Prijavljeni korisnik |
| Backend sign-out | Valjana auth sesija |
Ruta /logout | Auth ruta u konfiguraciji |
| Izvoz / dijeljenje | Nije primjenjivo |
Ako ne vidite ovu značajku, moguće je da:
- nemate odgovarajuću dozvolu,
- značajka nije uključena u vašem paketu,
- administrator je ograničio pristup,
- integracija ili modul nije aktiviran.
Ograničenja
Trenutna ograničenja značajke:
- različiti logout tokovi nisu potpuno ujednačeni,
- greška odjave iz menija se zapisuje u konzolu,
/logoutkoristi lokalni token, dok backend sign-out radi s kolačićima i refresh tokenom.
Rješavanje problema
| Problem | Mogući uzrok | Rješenje |
|---|---|---|
| Odjava ne preusmjerava | Koristili ste menu tok koji radi reload | Pričekajte reload ili ručno otvorite sign-in |
| Odjava javlja grešku | Refresh token nije dostupan ili API odbija zahtjev | Osvježite aplikaciju i pokušajte ponovno |
| Nakon odjave i dalje vidite podatke | Preglednik prikazuje cache ili sesija nije prekinuta | Osvježite stranicu i provjerite prijavu |
Česta pitanja
Je li odjava obavezna?
Preporučuje se svaki put kada završavate rad na dijeljenom ili nesigurnom uređaju.
Zašto postoje dva toka odjave?
Kod pokazuje backend sign-out iz menija i posebnu /logout stranicu. Povijesni razlog ili plan konsolidacije nije dokazan u kodu.
Briše li odjava sve podatke?
Ne briše poslovne podatke. Prekida korisničku sesiju i uklanja token/kolačiće prema odabranom toku.
Povezane značajke
Sljedeći korak
Ako tek počinjete, preporučujemo da prvo napravite sljedeće:
- Pronađite opciju odjave u profilu.
- Pronađite opciju odjave u bočnoj navigaciji.
- Koristite odjavu nakon završetka rada.
Nakon toga možete prijeći na: Potvrda odjave.