Comment fonctionne l’authentification Sushi SaaS
Suivre le parcours livré puis choisir les providers, la vérification, le MFA, la tenancy et les contrôles à conserver.
Ce guide aide à traiter l’authentification comme une décision produit, pas comme un écran de connexion. Sushi SaaS utilise Better Auth pour l’identité et ajoute les règles de tenant, récupération, modération et audit nécessaires au reste du starter.
Parcours utilisateur par défaut
- L’utilisateur s’inscrit par email/mot de passe, ou avec Google quand les deux identifiants OAuth sont configurés.
- L’inscription par mot de passe exige une adresse vérifiée. La vérification peut mettre en file la prime unique de crédits.
- L’inscription crée une organisation personnelle ; un chemin de réparation la crée ensuite si le hook a été interrompu.
- La connexion ne crée une session qu’après les contrôles de cycle de vie et de suspension.
- La réinitialisation du mot de passe révoque les sessions existantes.
Le double facteur est disponible mais facultatif dans l’application client. Il est obligatoire dans la console d’administration, en plus d’un rôle opérateur admin_ro ou admin_rw.
La configuration se trouve dans src/lib/auth.ts au commit 7580470. Variables et callbacks sont décrits dans Authentification et administration.
Décisions avant le lancement
| Décision | Choix livré | Quand le modifier |
|---|---|---|
| Méthodes de connexion | Email/mot de passe ; Google si configuré | Vos utilisateurs demandent passwordless, SSO entreprise ou un autre provider |
| Vérification d’email | Requise avec mot de passe | Votre risque accepte les comptes non vérifiés ; décidez aussi quand accorder les avantages d’inscription |
| MFA client | Disponible, choisi par l’utilisateur | Les données exigent un step-up ou MFA obligatoire |
| MFA admin | Obligatoire | À conserver sauf remplacement par une politique opérateur aussi forte |
| Antibot | Turnstile protège identifiants et emails quand activé ; la production échoue fermée autour du réglage choisi | Vous utilisez un autre contrôle edge/identité et adaptez validation et tests |
| Création du tenant | Chaque compte obtient une organisation personnelle | Le produit est réellement mono-utilisateur et le scope organisation est retiré de bout en bout |
Ne désactivez pas simplement la vérification en laissant les crédits d’accueil attachés à son hook. Décidez de déplacer la prime, de la supprimer ou d’exiger une autre preuve de qualité du compte.
Identité et autorisation sont distinctes
Une session valide répond « qui est-ce ? », pas « peut-il accéder à toutes les données ? ». Le rôle décide des actions ; les entitlements du plan décident des capacités achetées par l’organisation. Sushi sépare ces questions.
Le plugin Better Auth gère owner, admin et member. Les services ajoutent limites de sièges, protection du dernier owner et garantie qu’un utilisateur garde un workspace. La suppression générique est désactivée : effacer seulement les tables auth laisserait facturation et données produit orphelines.
Lisez Organisations et équipes avant de changer rôles ou sélection du tenant.
Récupération et abus
Turnstile peut protéger les endpoints d’identifiants et d’email. Les contrôles d’inscription couvrent mot de passe et OAuth ; la création de session bloque les comptes suspendus ou en effacement quelle que soit la méthode. Les erreurs visibles utilisent des codes localisés, jamais les messages serveur.
La politique reste la vôtre : qui suspend, comment contester, durée des sessions, événements conservés et changements permis au support.
Plan de test production
- Testez inscription, renvoi, expiration et connexion après vérification.
- Réinitialisez le mot de passe et confirmez la révocation des anciennes sessions.
- Testez chaque callback OAuth configuré sur son origine de production.
- Testez activation, vérification, récupération et désactivation MFA ; protégez les codes de secours.
- Testez en concurrence limites d’invitation et protection du dernier owner.
- Initialisez les deux rôles admin et confirmez le MFA sur l’origine admin.
Poursuivez avec Configurer la console d’administration. Ce guide reflète le commit 7580470.