Retour à la leçon
Mission

Mission : un utilisateur banni reste connecté malgré la révocation

Diagnostiquer pourquoi la révocation d'un compte n'invalide pas ses tokens déjà émis, puis corriger le hashage de mot de passe et sécuriser le cookie de refresh token.

Contexte

L'équipe support signale qu'un utilisateur banni pour fraude reste capable d'appeler l'API pendant encore 15 minutes après le bannissement, tant que son access token n'a pas expiré, ce qui est jugé normal. Le vrai problème est ailleurs : même après ces 15 minutes, l'endpoint /auth/refresh continue de lui délivrer de nouveaux access tokens valides, indéfiniment. En parallèle, tu découvres que hashPassword utilise crypto.createHash('sha256').update(plain).digest('hex') au lieu de bcrypt, et que le cookie contenant le refresh token est créé sans option httpOnly.