Verificare token

1. Adăugarea endpoint-ului de validare a token-ului în auth.routes.js

circle-info

Detalii tehnice:

  • Endpoint-ul /auth/check este utilizat pentru a verifica dacă token-ul JWT stocat în browser este valid.

  • Se folosește axiosAuth, care include automat token-ul în header-ul Authorization.

  • Răspunsul așteptat de la server este de forma:

2. Crearea ustom hook-ului useCheckToken pentru verificarea automată a token-ului

circle-info

Detalii tehnice și bune practici:

  • Hook-ul verifică automat dacă un token JWT este stocat în localStorage.

  • Dacă token-ul există, se apelează funcția checkToken pentru validare.

  • Token valid → se actualizează starea globală Redux cu setToken.

  • Token invalid sau absent → token-ul este eliminat din localStorage, starea Redux este resetată și utilizatorul este redirecționat la pagina de login.

  • Variabila checkTokenLoading este folosită pentru a controla afișarea unui spinner de încărcare până când validarea se finalizează.

  • Utilizarea acestui hook în App.jsx permite protejarea tuturor componentelor copil fără a scrie logica de verificare în fiecare componentă în parte.

3. Modificări în componenta App.jsx pentru integrarea verificării token-ului

circle-info

Aspecte importante:

  1. Inițializare hook verificare token: useCheckToken() este apelat imediat ce aplicația se încarcă, pentru a verifica token-ul existent și a proteja rutele private.

  2. Spinner de încărcare: dacă verificarea token-ului este în curs (checkTokenLoading === true), aplicația afișează un loader centrat pe ecran.

  3. Protecția componentelor: după finalizarea verificării, Navbar, Toaster și componenta corespunzătoare rutei curente (<Outlet />) sunt afișate.

  4. Redirecționare automată: token invalid → utilizator redirecționat automat la /login.

Last updated