fix(web): corrige la boucle de redirection infinie sur token expiré
Sur 401, l'intercepteur n'effaçait que le token localStorage mais pas le cookie cesizen-auth lu par le middleware -> /connexion redirigeait vers /dashboard à l'infini quand le JWT (60 min) expirait. On purge désormais aussi le cookie et l'état Zustand persisté avant de rediriger. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -31,7 +31,13 @@ api.interceptors.response.use(
|
|||||||
typeof window !== 'undefined' &&
|
typeof window !== 'undefined' &&
|
||||||
!window.location.pathname.includes('/connexion')
|
!window.location.pathname.includes('/connexion')
|
||||||
) {
|
) {
|
||||||
|
// Purge COMPLÈTE de l'auth pour éviter une boucle de redirection :
|
||||||
|
// le middleware lit le cookie `cesizen-auth` (état Zustand persisté) ;
|
||||||
|
// si on ne vide que le localStorage du token, il croit l'utilisateur
|
||||||
|
// encore connecté et renvoie /connexion -> /dashboard à l'infini.
|
||||||
localStorage.removeItem('cesizen_token');
|
localStorage.removeItem('cesizen_token');
|
||||||
|
localStorage.removeItem('cesizen-auth'); // état Zustand persisté
|
||||||
|
document.cookie = 'cesizen-auth=;path=/;max-age=0;SameSite=Lax';
|
||||||
window.location.href = '/connexion';
|
window.location.href = '/connexion';
|
||||||
}
|
}
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
|
|||||||
Reference in New Issue
Block a user