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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions