Comment fonctionne l’authentification Sushi SaaS
Une vue précise de Better Auth, l’email vérifié, Google optionnel, la MFA, les organisations et la protection contre les abus.
Sushi SaaS s’appuie sur Better Auth, son adaptateur Drizzle et un schéma PostgreSQL. Le starter ajoute les règles produit qu’une bibliothèque ne peut pas décider.
Modes de connexion disponibles
Email et mot de passe sont activés, la vérification d’email est obligatoire et l’inscription envoie le message de vérification. Une récupération de mot de passe révoque les sessions existantes. Google OAuth n’est enregistré que si les deux identifiants Google existent ; un fournisseur optionnel absent ne laisse donc pas un bouton cassé.
Better Auth fournit l’authentification à deux facteurs. La console admin exige en plus un rôle admin et la MFA. Un opérateur créé uniquement via Google peut définir un premier mot de passe avant d’activer la MFA.
La configuration exacte est dans src/lib/auth.ts au commit 7580470. Suivez Authentification et administration pour les variables et callbacks.
L’authentification crée un état produit
Le plugin d’organisations apporte les rôles owner, admin et member pour gérer les membres. Sushi SaaS mappe explicitement son schéma snake_case, limite les sièges via les entitlements, met les emails d’invitation en file et désactive la suppression générique d’organisation : effacer seulement les tables d’auth laisserait facturation et données produit orphelines.
Les hooks créent ou récupèrent aussi l’organisation personnelle et enregistrent les événements de connexion. L’autorisation produit reste distincte : une session valide n’accorde pas les fichiers, crédits ou tâches d’une autre organisation. Voir Organisations et équipes.
Abus et récupération
Une fois configuré, Cloudflare Turnstile protège les endpoints d’identifiants et d’envoi d’email. Les contrôles de modération peuvent bloquer les comptes suspendus, et la création de session est la dernière barrière commune au mot de passe et à OAuth. Les erreurs exposent des codes catalogués, jamais le message serveur brut.
Avant la production, testez vérification, récupération, callback Google, révocation de sessions, activation MFA et les deux rôles admin. Configuration de la console admin couvre l’origine séparée et le premier opérateur.