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.
révocable.
scalable.
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.
Empêcher l'abus sans gêner les vrais users : token bucket, Redis, et quoi limiter en priorité.
Fini le .env commité par erreur : où vivent les secrets, comment les injecter, et comment les faire tourner.