L'authentification dans une app Next.js
L'auth, c'est là qu'on se plante le plus, et où ça coûte le plus cher. Sessions ou JWT, où stocker le token, où placer les vérifications : voici le socle d'authentification que je monte, simple et solide.
L'auth, c'est là qu'on se plante le plus, et où ça coûte le plus cher. Sessions ou JWT, où stocker le token, où placer les vérifications : voici le socle d'authentification que je monte, simple et solide.
Deux façons de se souvenir qu'un utilisateur est connecté. Le débat est éternel ; en pratique, le choix est simple pour un SaaS classique.
Par défaut, pour un SaaS, je prends des sessions : pouvoir déconnecter un utilisateur immédiatement vaut mieux que l'élégance stateless du JWT.
Le middleware protège des groupes de routes d'un coup (redirection si pas de session). Mais il ne remplace pas la vérification dans chaque API route : le middleware garde la porte, la route garde le coffre.
Ne te repose jamais sur le seul middleware pour la sécurité des données : chaque route doit re-vérifier session ET propriété de la ressource. C'est la faille IDOR de les failles de sécurité de base.
Le rate limiting du login a son propre article : rate limiting et protection d'API.
Une auth solide n'est pas compliquée, elle est rigoureuse : sessions révocables pour un SaaS, token dans un cookie httpOnly, vérification dans chaque route et pas seulement au middleware, mots de passe hachés. Ne réinvente pas la roue sur OAuth — mais comprends chaque pièce.
Auth.js docs ↗