JWT (JSON Web Token)

Advanced Ecosystem 🟡 Mid

Definition

Token auto-contenu composé de 3 parties (header, payload, signature) encodé en Base64. Permet l'authentification stateless sans interroger la base de données à chaque requête.

Analogie

Un badge visiteur avec photo, nom et tampon de sécurité : toutes les infos sont sur le badge, pas besoin de vérifier un registre.

Exemple de code

import jwt from 'jsonwebtoken';
const accessToken = jwt.sign(
  { userId: user.id, role: 'admin' },
  process.env.JWT_SECRET,
  { expiresIn: '15m' }
);

Cas d'usage

Authentification API stateless avec access token court (15min) et refresh token long (7j).

Anti-pattern

Stocker des données sensibles dans le payload JWT (il est seulement encodé, pas chiffré) ou utiliser un secret faible.

Termes lies

#security#authentication