Documentation Better Auth - Endpoints et Implémentation
📋 Vue d’ensemble
Ce document liste tous les endpoints Better Auth nécessaires pour l’application Remora Trading, avec un indicateur de statut d’implémentation.✅ Statut d’implémentation
- ✅ Implémenté : Endpoint fonctionnel et testé
- 🚧 En cours : Endpoint partiellement implémenté
- ❌ Non implémenté : Endpoint non encore développé
🔐 Endpoints d’authentification de base
Connexion et Inscription
| Endpoint | Méthode | Description | Statut | Notes |
|---|---|---|---|---|
/auth/sign-in/email | POST | Connexion avec email et mot de passe | ✅ | Utilisé dans login.vue |
/auth/sign-up/email | POST | Inscription avec email et mot de passe | ✅ | Utilisé dans signup.vue |
/auth/sign-in/social | GET | Redirection OAuth (Google, GitHub) | ✅ | Configuré pour Google et GitHub |
/auth/callback/[provider] | GET | Callback OAuth après authentification | ✅ | Géré automatiquement par Better Auth |
/auth/sign-out | POST | Déconnexion de l’utilisateur | ✅ | Utilisé dans useAuth.ts |
Gestion des sessions
| Endpoint | Méthode | Description | Statut | Notes |
|---|---|---|---|---|
/auth/get-session | GET | Récupérer la session actuelle | ✅ | ESSENTIEL - Utilisé au chargement de l’app |
/auth/list-sessions | GET | Lister toutes les sessions actives | ❌ | Non utilisé actuellement |
/auth/revoke-session | POST | Révoquer une session spécifique | ❌ | Non utilisé actuellement |
/auth/revoke-sessions | POST | Révoquer toutes les sessions | ❌ | Non utilisé actuellement |
/auth/revoke-other-sessions | POST | Révoquer toutes les autres sessions | ❌ | Non utilisé actuellement |
🔑 Gestion des mots de passe
| Endpoint | Méthode | Description | Statut | Notes |
|---|---|---|---|---|
/auth/forget-password | POST | Demander une réinitialisation | ✅ | Utilisé dans forgot-password.vue |
/auth/reset-password | POST | Réinitialiser avec token | ✅ | Utilisé dans reset-password.vue |
/auth/change-password | POST | Changer le mot de passe (utilisateur connecté) | ❌ | À implémenter dans les paramètres |
/auth/set-password | POST | Définir un nouveau mot de passe | ❌ | Pour les comptes OAuth sans mot de passe |
📧 Gestion des emails
| Endpoint | Méthode | Description | Statut | Notes |
|---|---|---|---|---|
/auth/verify-email | POST | Vérifier l’email avec token | ✅ | Méthode disponible dans useAuth.ts |
/auth/send-verification-email | POST | Envoyer un email de vérification | ❌ | À implémenter si nécessaire |
/auth/change-email | POST | Changer l’adresse email | ❌ | À implémenter dans les paramètres |
👤 Gestion du profil utilisateur
| Endpoint | Méthode | Description | Statut | Notes |
|---|---|---|---|---|
/auth/update-user | POST | Mettre à jour le profil | ✅ | Méthode disponible dans useAuth.ts |
/auth/delete-user | POST | Supprimer le compte | ❌ | À implémenter avec confirmation |
🔗 Gestion des comptes liés (OAuth)
| Endpoint | Méthode | Description | Statut | Notes |
|---|---|---|---|---|
/auth/link-social-account | POST | Lier un compte social | ❌ | À implémenter dans les paramètres |
/auth/unlink-account | POST | Dissocier un compte lié | ❌ | À implémenter dans les paramètres |
/auth/list-user-accounts | GET | Lister les comptes liés | ❌ | À implémenter dans les paramètres |
🏢 Gestion des organisations (Plugin)
| Endpoint | Méthode | Description | Statut | Notes |
|---|---|---|---|---|
/auth/organization/create | POST | Créer une organisation | ❌ | Plugin activé mais non utilisé |
/auth/organization/list | GET | Lister les organisations | ❌ | Plugin activé mais non utilisé |
/auth/organization/get | GET | Récupérer une organisation | ❌ | Plugin activé mais non utilisé |
/auth/organization/update | POST | Mettre à jour une organisation | ❌ | Plugin activé mais non utilisé |
/auth/organization/delete | POST | Supprimer une organisation | ❌ | Plugin activé mais non utilisé |
/auth/organization/member/add | POST | Ajouter un membre | ❌ | Plugin activé mais non utilisé |
/auth/organization/member/remove | POST | Retirer un membre | ❌ | Plugin activé mais non utilisé |
/auth/organization/member/update-role | POST | Mettre à jour le rôle d’un membre | ❌ | Plugin activé mais non utilisé |
🔐 Authentification à deux facteurs (2FA - Plugin)
| Endpoint | Méthode | Description | Statut | Notes |
|---|---|---|---|---|
/auth/two-factor/enable | POST | Activer le 2FA | ❌ | Plugin activé mais non utilisé |
/auth/two-factor/disable | POST | Désactiver le 2FA | ❌ | Plugin activé mais non utilisé |
/auth/two-factor/verify | POST | Vérifier le code 2FA | ❌ | Plugin activé mais non utilisé |
/auth/two-factor/generate-backup-codes | POST | Générer des codes de secours | ❌ | Plugin activé mais non utilisé |
🔧 Configuration actuelle
Routes configurées dans Stack.ts
- ✅
GET /auth/{proxy+}- Tous les endpoints GET - ✅
POST /auth/{proxy+}- Tous les endpoints POST - ✅
OPTIONS /auth/{proxy+}- Pour CORS preflight
Plugins activés
- ✅ Organization : Activé (limite: 5 organisations par utilisateur)
- ✅ Two Factor : Activé (issuer: “Remora Trading”)
- ✅ Email & Password : Activé (vérification email requise)
- ✅ Social Providers : Google et GitHub configurés
Champs personnalisés utilisateur
- ✅
tradingEnabled(boolean) - Activer/désactiver le trading - ✅
riskLevel(string) - Niveau de risque (défaut: “conservative”)
📝 Pages frontend implémentées
| Page | Route | Statut | Description |
|---|---|---|---|
| Login | /login | ✅ | Page de connexion avec OAuth |
| Signup | /signup | ✅ | Page d’inscription avec OAuth |
| Forgot Password | /forgot-password | ✅ | Demande de réinitialisation |
| Reset Password | /reset-password | ✅ | Définition nouveau mot de passe |
| Dashboard | /dashboard | ✅ | Protégée par middleware auth |
| Settings | /settings/* | ✅ | Pages protégées |
🐛 Problèmes connus
CORS
- Statut : ✅ Résolu
- Description : Erreur CORS avec wildcard
*quandcredentials: 'include' - Solution : Configuration CORS au niveau SST + handler Lambda avec headers explicites
Invalid URL
- Statut : ✅ Résolu
- Description : Better Auth ne peut pas construire l’URL depuis l’événement API Gateway
- Solution :
- Conversion du protocol “http/1.1” en “https” (API Gateway v2)
- Utilisation de
X-Forwarded-Protosi disponible - Construction robuste de l’URL avec fallback
- Gestion des objets
Responsestandard de Better Auth - Utilisation d’un objet
Requeststandard (Node.js 18+)
Database Adapter
- Statut : ✅ Résolu
- Description : “Failed to initialize database adapter”
- Solution : Utilisation de
prismaAdapteravec provider “mongodb” etDbService.init()
OAuth Providers Warnings
- Statut : ✅ Résolu
- Description : Warnings sur les providers Google/GitHub manquants en développement local
- Solution : Activation conditionnelle des providers seulement si les secrets sont disponibles
📚 Ressources
🎯 Prochaines étapes
- ✅ Résoudre le problème “Invalid URL” dans le handler
- ✅ Finaliser la configuration CORS
- ✅ Résoudre les warnings OAuth providers
- ❌ Implémenter la page de vérification d’email
- ❌ Ajouter la gestion des paramètres utilisateur (changement email, mot de passe)
- ❌ Implémenter la gestion des organisations (si nécessaire)
- ❌ Activer le 2FA pour les utilisateurs (optionnel)
Dernière mise à jour : 2024