Potvrda odjave
Kratki sažetak
Potvrda odjave je posebna stranica na ruti /logout. Prikazuje karticu s naslovom Odjava, upozorenjem „Da li ste sigurni da se želite odjaviti iz aplikacije?”, gumbom Povratak i gumbom Odjavi se.
Najvažnije koristi:
- Sprječava slučajnu odjavu na posebnoj ruti.
- Korisnik se može vratiti na prethodnu stranicu.
- Akcija odjave uklanja
userstore.tokenizlocalStoragei vodi na sign-in.
Kada koristiti ovu značajku
Koristite potvrdu odjave kada želite:
- namjerno završiti sesiju preko
/logout, - imati jasnu potvrdu prije napuštanja aplikacije,
- vratiti se ako ste slučajno otvorili odjavnu rutu.
Ova značajka je posebno korisna za:
- korisnike koji žele dodatnu sigurnost prije odjave,
- administratore koji ne žele slučajno prekinuti rad,
- podršku koja korisnicima daje direktnu logout rutu.
Prije nego što počnete
Prije korištenja provjerite sljedeće:
- spremili ste otvoreni rad,
- otvorili ste
/logoutkao prijavljeni korisnik, - znate da Odjavi se vodi na
REACT_APP_WEB_URL + "/sign-in".
Napomena: Ova stranica koristi Ant Design komponente i lokalno uklanja token. Ne vidi se poziv POST /auth/sign-out u pregledanom Logout.tsx.
Brzi početak
U ovom primjeru pokazujemo kako potvrditi odjavu.
- Otvorite
/logout. - Pročitajte upozorenje.
- Ako ne želite odjavu, kliknite Povratak.
- Ako želite odjavu, kliknite Odjavi se.
- Aplikacija uklanja lokalni token.
- Preglednik se preusmjerava na sign-in.
Nakon toga trebali biste vidjeti: stranicu za prijavu.
Detaljne upute
Korak 1: Otvorite stranicu odjave
Ruta /logout je registrirana kao auth ruta bez glavne navigacije (hideNav: true).
Primjer:
/logoutSnimka zaslona
kartica potvrde odjave
Alt tekst: Stranica odjave s upozorenjem i gumbima Povratak i Odjavi se.
Korak 2: Odaberite Povratak ili Odjavi se
Povratak poziva navigate(-1). Odjavi se poziva handleLogout.
Snimka zaslona
gumbi Povratak i Odjavi se na logout stranici
Alt tekst: Akcije za povratak ili potvrdu odjave na stranici logout.
Korak 3: Završite odjavu
handleLogout uklanja userstore.token iz localStorage i radi window.location.replace prema web sign-in URL-u.
Primjer iz prakse
Zamislimo da korisnik klikne logout link greškom.
Scenarij:
- Korisnik: računovođa
- Cilj: izbjeći slučajnu odjavu usred rada
- Problem: direktna odjava bi prekinula tok
- Rješenje: stranica nudi Povratak prije izvršavanja odjave
Rezultat:
Korisnik se može vratiti na prethodni ekran bez prekida rada.
Showcase: kako značajka izgleda u aplikaciji
Pregled zaslona
Snimka zaslona
centrirana kartica potvrde odjave
Što korisnik vidi:
- naslov Odjava,
- upozorenje,
- akcije Povratak i Odjavi se.
Primjer konfiguracije
Snimka zaslona
logout stranica prije klika na Odjavi se
Preporučena konfiguracija za početnike:
| Postavka | Preporučena vrijednost | Zašto je korisna |
|---|---|---|
| Povratak | Koristiti kod slučajnog otvaranja | Ne prekida rad |
| Odjavi se | Koristiti nakon spremanja rada | Sigurno završava sesiju |
| Sign-in URL | REACT_APP_WEB_URL + /sign-in | Kod koristi ovu vrijednost |
Najčešće radnje
Kako se vratiti bez odjave
- Otvorite
/logout. - Kliknite Povratak.
- Aplikacija se vraća jednu stavku u povijesti preglednika.
Kako potvrditi odjavu
- Otvorite
/logout. - Kliknite Odjavi se.
- Pričekajte preusmjeravanje.
Kako provjeriti da ste odjavljeni
- Nakon preusmjeravanja provjerite sign-in ekran.
- Pokušajte otvoriti app rutu.
- Ako vas traži prijavu, sesija je prekinuta.
Dobre prakse
Za najbolje rezultate:
- koristite Povratak ako ste stranicu otvorili greškom,
- spremite dokumente prije potvrde,
- ne dijelite logout rutu kao zamjenu za upravljanje sesijom,
- nakon odjave zatvorite karticu na javnom uređaju.
Izbjegavajte:
- klik Odjavi se usred nespremljenog obrasca,
- pretpostavku da
/logoutradi identično kao backend sign-out, - ručno brisanje storagea ako UI odjava radi.
Napredne mogućnosti
Ako trebate više kontrole, možete koristiti:
Povratak kroz history
Gumb Povratak koristi navigate(-1), pa ponašanje ovisi o povijesti preglednika.
Lokalni token
Stranica uklanja userstore.token iz localStorage. Ako aplikacija koristi dodatne kolačiće, ponašanje ovisi o auth sloju izvan ove komponente.
Preusmjeravanje na web
Sign-in odredište dolazi iz REACT_APP_WEB_URL, a ne iz trenutne app rute.
Dozvole i pristup
Za korištenje ove značajke potrebne su sljedeće dozvole:
| Radnja | Potrebna uloga/dozvola |
|---|---|
Pregled /logout | Prijavljeni korisnik prema ruti |
| Povratak | Povijest preglednika |
| Potvrda odjave | Prijavljeni korisnik |
| 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:
- tekst koristi „Da li” umjesto standardnijeg „Jeste li” u kodu,
- nema dokazanog backend sign-out poziva u ovoj stranici,
- širina kartice je fiksno postavljena na 600 px.
Rješavanje problema
| Problem | Mogući uzrok | Rješenje |
|---|---|---|
| Povratak ne vodi gdje očekujete | Povijest preglednika nema prethodnu app stranicu | Ručno otvorite početnu rutu |
| Nakon odjave i dalje ste prijavljeni | Drugi auth token ili cookie je aktivan | Koristite odjavu iz menija ili očistite sesiju kroz podršku |
| Sign-in URL nije ispravan | REACT_APP_WEB_URL nije podešen | Provjerite konfiguraciju okruženja |
Česta pitanja
Je li /logout dostupan bez prijave?
Ruta je u konfiguraciji označena s auth: true, pa je namijenjena prijavljenim korisnicima.
Što radi gumb Povratak?
Poziva navigate(-1) i vraća korisnika na prethodnu stavku u povijesti preglednika.
Briše li ova stranica refresh token na backendu?
U pregledanom Logout.tsx ne vidi se backend poziv za refresh token. Za backend sign-out koristi se odjava iz menija.
Povezane značajke
Sljedeći korak
Ako tek počinjete, preporučujemo da prvo napravite sljedeće:
- Otvorite korisnički izbornik i pronađite odjavu.
- Otvorite
/logoutu sigurnom trenutku. - Usporedite potvrdu i menu odjavu.
Nakon toga možete prijeći na: Odjava.