{
  "id": "add-better-auth-to-nextjs",
  "type": "prompts",
  "category": "prompts",
  "locale": "fr",
  "url": "/fr/prompts/add-better-auth-to-nextjs",
  "title": "Invite pour ajouter Better Auth à Next.js avec PostgreSQL",
  "description": "Une invite copier-coller pour ajouter Better Auth et la gestion de sessions PostgreSQL à un projet Next.js App Router.",
  "tools": [
    "Cursor",
    "Claude Code",
    "Codex"
  ],
  "stack": [
    "Next.js",
    "PostgreSQL",
    "TypeScript"
  ],
  "tags": [
    "auth",
    "nextjs",
    "postgres"
  ],
  "difficulty": "medium",
  "updated": "2026-06-08",
  "markdown": "Donnez ceci à votre agent pour configurer l'authentification par email + session dans un projet Next.js App Router sans qu'il invente des routes ou utilise une bibliothèque obsolète.\n\n## Invite principale\n\n```txt title=\"Main Prompt\"\nYou are working in a Next.js App Router project that uses TypeScript and PostgreSQL.\n\nTask: add authentication using Better Auth.\n\nRequirements:\n- Use the `better-auth` package. Do NOT use next-auth/auth.js.\n- Configure email + password auth with database-backed sessions.\n- Use the existing PostgreSQL connection; create the auth tables via Better Auth's schema.\n- Add a server-side `auth` instance in `src/lib/auth.ts`.\n- Mount the handler at `app/api/auth/[...all]/route.ts`.\n- Add a typed `getSession()` helper for Server Components.\n- Do not touch unrelated files. Show me the diff before applying.\n\nStop after the code changes and list exactly which files you created or edited.\n```\n\n## Notes d'implémentation\n\n- Better Auth fournit son propre schéma ; laissez-le générer les tables plutôt que d'écrire des migrations à la main.\n- Gardez tous les secrets dans `.env` et validez-les au démarrage.\n- Les sessions doivent être basées sur la base de données, pas sur JWT, pour une révocation facile.\n\n## Modifications de fichiers attendues\n\n```txt\nsrc/lib/auth.ts                      (new)\napp/api/auth/[...all]/route.ts       (new)\nsrc/lib/get-session.ts               (new)\n.env.example                         (edited)\npackage.json                         (edited)\n```\n\n## Critères d'acceptation\n\n- Un nouvel utilisateur peut s'inscrire et une ligne de session est écrite dans PostgreSQL.\n- `getSession()` renvoie l'utilisateur dans un Server Component.\n- La déconnexion efface la session côté serveur.\n\n## Commandes de test\n\n```bash\nbun run typecheck\nbun run dev\n# then exercise /api/auth/sign-up and /api/auth/sign-in\n```\n\n## Erreurs courantes de l'IA\n\n- Utiliser `next-auth` même si l'invite l'interdit.\n- Stocker les sessions sous forme de JWT et ignorer les tables de base de données.\n- Oublier de valider `BETTER_AUTH_SECRET` / `DATABASE_URL`.\n\n## Invite de correction\n\n```txt title=\"Fix Prompt\"\nYou used a different auth library or JWT sessions. Redo it with `better-auth`\nand database-backed sessions only. Remove any next-auth code you added.\n```"
}