Le débat JWT vs cookie a beaucoup fait perdre de temps sur Twitter. En 2023, la vraie réponse est : ni un ni l'autre en isolation, mais un cookie httpOnly qui peut contenir un JWT.
Best practice : session cookie httpOnly + Secure + SameSite=Lax. Le reste est du détail.
JWT dans localStorage : NON
Vulnérable au XSS. Toute lib tierce compromise peut voler le token. À oublier en 2023 pour du SaaS sérieux.
Cookie httpOnly
- Inaccessible en JavaScript (protection XSS)
- Envoyé automatiquement par le navigateur
- SameSite=Lax pour la CSRF
- Secure obligatoire en HTTPS
Contenu du cookie : JWT ou session ID ?
- Session ID + Redis : révocation instantanée, lookup à chaque requête
- JWT signé : stateless, plus rapide, mais révocation plus complexe
Quand chaque option gagne
Session pour la plupart des SaaS < 100 k users. JWT quand vous avez plusieurs services qui doivent vérifier l'identité sans lookup DB partagé.
Un cookie httpOnly avec un JWT court à l'intérieur = pragmatique, sûr, scalable. C'est le vrai choix par défaut.
On regarde votre auth ?
En 30 minutes on peut auditer votre setup. Réservez un appel. À lire : Magic link, OAuth, mot de passe.