Skip to content

🐛 [BUG] - jwt expired rĂ©current : le client n'actualise pas le token avant les requĂȘtes API #2591

Description

@shikanime

Description

Le serveur rejette pĂ©riodiquement des requĂȘtes authentifiĂ©es avec l'erreur jwt expired, alors que la session utilisateur est toujours active cĂŽtĂ© client.
Le client (apps/client/src/api/xhr-client.ts) attache keycloak.token sans appeler keycloak.updateToken() au préalable.
Le rafraĂźchissement ne s'effectue que via le timer passif onTokenExpired et un contournement dans onAuthSuccess : toute requĂȘte Ă©mise Ă  proximitĂ© de l'expiration — ou aprĂšs une pĂ©riode d'onglet inactif (timers throttlĂ©s par le navigateur) — transporte un JWT dĂ©jĂ  expirĂ©.
Le gestionnaire 401 (extractData) ne redirige vers le login que si !keycloak.authenticated ; il ne tente jamais de rafraĂźchir le token.

Etapes de reproduction

  1. Ouvrir la console et laisser l'onglet en arriĂšre-plan jusqu'Ă  l'expiration de l'access token Keycloak
  2. Revenir sur l'onglet et dĂ©clencher une requĂȘte API
  3. Le serveur répond 401 avec jwt expired

Captures d'écran

Logs

UnauthorizedException: jwt expired

Navigateurs

Tous

OS

Tous

Version de la console impactée

apps/client (xhr-client) avec apps/server-nestjs (KeycloakJwtService)

Définition du fini

  • Le correctif est terminĂ©
  • Les tests liĂ©s Ă  ce correctif ont Ă©tĂ© ajoutĂ©s

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions