Skip to main content

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

EndpointMéthodeDescriptionStatutNotes
/auth/sign-in/emailPOSTConnexion avec email et mot de passeUtilisé dans login.vue
/auth/sign-up/emailPOSTInscription avec email et mot de passeUtilisé dans signup.vue
/auth/sign-in/socialGETRedirection OAuth (Google, GitHub)Configuré pour Google et GitHub
/auth/callback/[provider]GETCallback OAuth après authentificationGéré automatiquement par Better Auth
/auth/sign-outPOSTDéconnexion de l’utilisateurUtilisé dans useAuth.ts

Gestion des sessions

EndpointMéthodeDescriptionStatutNotes
/auth/get-sessionGETRécupérer la session actuelleESSENTIEL - Utilisé au chargement de l’app
/auth/list-sessionsGETLister toutes les sessions activesNon utilisé actuellement
/auth/revoke-sessionPOSTRévoquer une session spécifiqueNon utilisé actuellement
/auth/revoke-sessionsPOSTRévoquer toutes les sessionsNon utilisé actuellement
/auth/revoke-other-sessionsPOSTRévoquer toutes les autres sessionsNon utilisé actuellement

🔑 Gestion des mots de passe

EndpointMéthodeDescriptionStatutNotes
/auth/forget-passwordPOSTDemander une réinitialisationUtilisé dans forgot-password.vue
/auth/reset-passwordPOSTRéinitialiser avec tokenUtilisé dans reset-password.vue
/auth/change-passwordPOSTChanger le mot de passe (utilisateur connecté)À implémenter dans les paramètres
/auth/set-passwordPOSTDéfinir un nouveau mot de passePour les comptes OAuth sans mot de passe

📧 Gestion des emails

EndpointMéthodeDescriptionStatutNotes
/auth/verify-emailPOSTVérifier l’email avec tokenMéthode disponible dans useAuth.ts
/auth/send-verification-emailPOSTEnvoyer un email de vérificationÀ implémenter si nécessaire
/auth/change-emailPOSTChanger l’adresse emailÀ implémenter dans les paramètres

👤 Gestion du profil utilisateur

EndpointMéthodeDescriptionStatutNotes
/auth/update-userPOSTMettre à jour le profilMéthode disponible dans useAuth.ts
/auth/delete-userPOSTSupprimer le compteÀ implémenter avec confirmation

🔗 Gestion des comptes liés (OAuth)

EndpointMéthodeDescriptionStatutNotes
/auth/link-social-accountPOSTLier un compte socialÀ implémenter dans les paramètres
/auth/unlink-accountPOSTDissocier un compte liéÀ implémenter dans les paramètres
/auth/list-user-accountsGETLister les comptes liésÀ implémenter dans les paramètres

🏢 Gestion des organisations (Plugin)

EndpointMéthodeDescriptionStatutNotes
/auth/organization/createPOSTCréer une organisationPlugin activé mais non utilisé
/auth/organization/listGETLister les organisationsPlugin activé mais non utilisé
/auth/organization/getGETRécupérer une organisationPlugin activé mais non utilisé
/auth/organization/updatePOSTMettre à jour une organisationPlugin activé mais non utilisé
/auth/organization/deletePOSTSupprimer une organisationPlugin activé mais non utilisé
/auth/organization/member/addPOSTAjouter un membrePlugin activé mais non utilisé
/auth/organization/member/removePOSTRetirer un membrePlugin activé mais non utilisé
/auth/organization/member/update-rolePOSTMettre à jour le rôle d’un membrePlugin activé mais non utilisé

🔐 Authentification à deux facteurs (2FA - Plugin)

EndpointMéthodeDescriptionStatutNotes
/auth/two-factor/enablePOSTActiver le 2FAPlugin activé mais non utilisé
/auth/two-factor/disablePOSTDésactiver le 2FAPlugin activé mais non utilisé
/auth/two-factor/verifyPOSTVérifier le code 2FAPlugin activé mais non utilisé
/auth/two-factor/generate-backup-codesPOSTGénérer des codes de secoursPlugin 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

PageRouteStatutDescription
Login/loginPage de connexion avec OAuth
Signup/signupPage d’inscription avec OAuth
Forgot Password/forgot-passwordDemande de réinitialisation
Reset Password/reset-passwordDéfinition nouveau mot de passe
Dashboard/dashboardProtégée par middleware auth
Settings/settings/*Pages protégées

🐛 Problèmes connus

CORS

  • Statut : ✅ Résolu
  • Description : Erreur CORS avec wildcard * quand credentials: '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-Proto si disponible
    • Construction robuste de l’URL avec fallback
    • Gestion des objets Response standard de Better Auth
    • Utilisation d’un objet Request standard (Node.js 18+)

Database Adapter

  • Statut : ✅ Résolu
  • Description : “Failed to initialize database adapter”
  • Solution : Utilisation de prismaAdapter avec provider “mongodb” et DbService.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

  1. ✅ Résoudre le problème “Invalid URL” dans le handler
  2. ✅ Finaliser la configuration CORS
  3. ✅ Résoudre les warnings OAuth providers
  4. ❌ Implémenter la page de vérification d’email
  5. ❌ Ajouter la gestion des paramètres utilisateur (changement email, mot de passe)
  6. ❌ Implémenter la gestion des organisations (si nécessaire)
  7. ❌ Activer le 2FA pour les utilisateurs (optionnel)

Dernière mise à jour : 2024