En bref

Le bon défaut pour un SaaS n'est ni le JWT en localStorage ni un camp dans le débat JWT contre session, mais un cookie httpOnly, Secure et SameSite=Lax — qui peut contenir un JWT ou un identifiant de session. Le JWT en localStorage est vulnérable au XSS : toute dépendance tierce compromise peut voler le jeton.

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.

  • Inaccessible en JavaScript (protection XSS)
  • Envoyé automatiquement par le navigateur
  • SameSite=Lax pour la CSRF
  • Secure obligatoire en HTTPS
  • 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.

Un projet à lancer ou à sauver ?

30 min d'appel gratuit. On regarde ensemble ce qui bloque et par où commencer.

Réserver un appel découverte