Session vs Token Auth

Advanced Ecosystem 🟡 Mid

Definition

Sessions stockent l'état côté serveur (cookie + store), tokens sont stateless (JWT côté client). Sessions offrent révocation facile, tokens offrent scalabilité horizontale.

Analogie

Session = badge gardé au registre de l'accueil. Token = badge avec toutes les infos imprimées dessus.

Exemple de code

// Session: server stores state
req.session.userId = user.id; // Stored in Redis
// Token: client stores state
const token = jwt.sign({ userId: user.id }, secret);
res.json({ accessToken: token });

Cas d'usage

Choisir sessions pour les apps monolithiques classiques, tokens pour les API/microservices.

Anti-pattern

Stocker des JWT dans localStorage (vulnérable XSS) au lieu de cookies httpOnly.

Termes lies

#security#authentication#architecture