ADR-02: Auth flow
Magic link vs email/password pour les établissements
Contexte
L'admin Wcare crée le compte de l'établissement. Il faut un moyen de transmettre les credentials au client de manière sécurisée et simple.
Deux questions :
- Comment transmettre l'accès initial ?
- Quelle méthode d'auth au quotidien ?
Décision
Magic link pour l'onboarding, email/password disponible en option.
Onboarding
- L'admin crée l'établissement → un user est créé
- Un magic link (token unique, validité 24h) est envoyé par email
- L'établissement clique → session créée → accès au dashboard
- Option de définir un mot de passe après la première connexion
Auth quotidienne
- Email/password pour les connexions régulières
- Magic link disponible via "Mot de passe oublié"
- Sessions via cookies httpOnly secure (Better Auth)
Alternatives écartées
| Alternative | Raison du rejet |
|---|---|
| Envoyer le mot de passe par email | Mauvaise pratique de sécurité — mot de passe en clair dans un email |
| OAuth uniquement (Google, etc.) | Pas tous les établissements ont un compte Google corporate |
| Invitation avec lien d'inscription | Plus de friction qu'un magic link direct |
| SMS OTP | Coût par SMS, complexité d'intégration, pas universel |
Conséquences
- Positif : Aucun mot de passe en clair transmis par email
- Positif : Onboarding frictionless — un clic suffit
- Positif : Compatible avec Better Auth (magic link intégré)
- Attention : Token magic link doit être one-time-use et limité dans le temps (24h)
- Attention : L'email doit être vérifié implicitement via le clic du magic link