JWT Token Rotation
Advanced Ecosystem 🔴 SeniorDefinition
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.