Guide pas-à-pas pour terminer la configuration de Better Auth dans un environnement neuf.
- PostgreSQL en marche (Docker :
docker compose -f compose.local.yml up -d) - Node.js ≥ 24
- Dépendances installées (
npm installà la racine)
Better Auth requiert ses propres tables. Lancez la CLI pour les créer :
cd packages/backend
npx @better-auth/cli generate # Génère le fichier de migration
npx @better-auth/cli migrate # Applique les migrationsTables créées :
| Table | Rôle |
|---|---|
user |
Comptes utilisateurs |
session |
Sessions actives |
account |
Comptes OAuth ou e-mail/mot de passe |
verification |
Jetons de vérification d'e-mail |
cp .env.example .env| Variable | Description | Exemple |
|---|---|---|
DATABASE_URL |
Chaîne de connexion PostgreSQL | postgresql://thebox:thebox_secret@localhost:5432/thebox |
BETTER_AUTH_SECRET |
Clé de signature (≥ 32 caractères) | openssl rand -base64 32 |
API_URL |
URL publique du backend | http://localhost:3000 |
CORS_ORIGIN |
URL du frontend | http://localhost:5173 |
| Variable | Description |
|---|---|
RESEND_API_KEY |
Clé Resend pour envoyer les e-mails |
EMAIL_FROM |
Adresse d'expéditeur |
À noter. Sans
RESEND_API_KEY, les liens de réinitialisation s'affichent dans la console (mode dev).
- Créez un compte sur resend.com
- Vérifiez votre domaine ou utilisez le domaine sandbox pour les tests
- Générez une clé API depuis le tableau de bord
- Renseignez-la dans
.env
# Depuis la racine
npm run devBackend disponible sur http://localhost:3000, frontend sur http://localhost:5173.
- Rendez-vous sur
http://localhost:5173/register - Renseignez nom d'utilisateur, e-mail, mot de passe
- Validez — vous êtes redirigé vers l'accueil
http://localhost:5173/login- Saisissez vos identifiants
- Votre nom d'utilisateur apparaît dans le header
Cliquez sur « Continuer en tant qu'invité » sur la page de connexion.
http://localhost:5173/forgot-password- Saisissez votre e-mail
- Consultez votre boîte de réception (ou la console en dev) pour le lien
- Cliquez et choisissez un nouveau mot de passe
Cliquez sur votre nom d'utilisateur dans le header puis sur « Déconnexion ».
Détail technique. Better Auth route automatiquement ces endpoints sous
/api/auth/*.
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /api/auth/sign-up/email |
Inscription par e-mail/mot de passe |
| POST | /api/auth/sign-in/email |
Connexion par e-mail |
| POST | /api/auth/sign-in/username |
Connexion par nom d'utilisateur |
| POST | /api/auth/sign-in/anonymous |
Connexion invité |
| POST | /api/auth/sign-out |
Déconnexion |
| GET | /api/auth/session |
Session courante |
| POST | /api/auth/forget-password |
Demande de réinitialisation |
| POST | /api/auth/reset-password |
Validation de la réinitialisation |
npx playwright install chromium- Vérifiez que
CORS_ORIGINcorrespond exactement à l'URL du frontend - Côté frontend, utilisez
credentials: 'include'sur les requêtes
- Vérifiez que
RESEND_API_KEYest bien renseigné - En dev, le lien s'affiche dans la console
- Vérifiez que votre domaine est validé dans Resend
- PostgreSQL doit tourner :
docker compose -f compose.local.yml up -d DATABASE_URLdoit correspondre à votre configuration Docker
Si vous avez déjà une table users à migrer vers Better Auth :
- Exporter les données existantes
- Recréer les utilisateurs via l'API Better Auth ou en SQL direct
- Lier les données métier (sessions, scores) via
auth_user_id
Un script de migration peut être écrit en fonction de votre cas.