JWT Token Rotation

Advanced Ecosystem 🔴 Senior

Definition

Stratégie où le refresh token est à usage unique : chaque utilisation génère une nouvelle paire access/refresh. Détecte le vol de token par réutilisation.

Analogie

Un ticket de vestiaire à usage unique : si quelqu'un l'a déjà utilisé, le vestiaire sait qu'il y a fraude.

Exemple de code

async function rotateTokens(refreshToken) {
  const stored = await db.findToken(refreshToken);
  if (stored.used) {
    await db.revokeFamily(stored.familyId); // Compromis!
    throw new Error('Token reuse detected');
  }
  await db.markUsed(refreshToken);
  return generateTokenPair(stored.userId, stored.familyId);
}

Cas d'usage

Sécuriser les sessions longue durée en détectant automatiquement le vol de refresh token.

Anti-pattern

Utiliser des refresh tokens réutilisables sans détection de réutilisation.

Termes lies

#security#authentication