Auth investisseur (Better Auth)¶
L'authentification investisseur (login, signup, OAuth social, reset password, 2FA login, email verification) est entièrement gérée par Better Auth — montée par BetterAuthFastifyModule sous /api/auth/*.
Il n'existe plus de contrôleur HTTP customers/auth ni d'endpoints legacy (POST /customers/email/sign-in, OAuth Passport, exchange-jwt, etc.).
Routes client (clientAuth)¶
| Flow | Route Better Auth | Clients |
|---|---|---|
| Sign-in email | POST /api/auth/sign-in/email |
web, mobile |
| Sign-up email | POST /api/auth/sign-up/email |
web, mobile |
| OAuth social | POST /api/auth/sign-in/social (+ redirects provider) |
web, mobile |
| Session | GET /api/auth/get-session |
web, mobile |
| Sign-out | POST /api/auth/sign-out |
web, mobile |
| Forgot password | POST /api/auth/request-password-reset |
web, mobile |
| Reset password | POST /api/auth/reset-password |
web, mobile |
| Change password (authentifié) | POST /api/auth/change-password |
web, mobile |
| 2FA login | plugin twoFactor — sendOtp / verifyOtp |
web, mobile |
| Email verification signup | plugin emailOTP — sendVerificationOtp / verifyEmail |
web, mobile |
Session & guard API métier¶
Les endpoints métier investisseur (/customers/*, /wallet/*, etc.) exigent une session Better Auth cookie validée par JwtAuthGuard (nom historique — pas de JWT Passport).
- Cookie session :
better-auth.session_token(ou__Secure-…en HTTPS) - Native : cookies persistés via
@better-auth/expo(expo-secure-store)
Documentation détaillée¶
- Architecture Better Auth :
better-auth/README.md - Flows mobile :
AUTH_FLOWS.md - Tests d'intégration auth :
auth-flow.integration-test.ts
MFA post-login (legacy Redis)¶
Les actions sensibles après connexion (changement email/mot de passe, retrait, carte cadeau, etc.) passent encore par le MFA Redis (POST /auth/mfa/*). Voir mfa.md.
Le 2FA au login ne passe pas par Redis — uniquement le plugin Better Auth twoFactor.