{
  "id": "add-better-auth-to-nextjs",
  "type": "prompts",
  "category": "prompts",
  "locale": "es",
  "url": "/es/prompts/add-better-auth-to-nextjs",
  "title": "Prompt para agregar Better Auth a Next.js con PostgreSQL",
  "description": "Un prompt de copiar y pegar para agregar Better Auth y manejo de sesiones con PostgreSQL a un proyecto 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": "Dale esto a tu agente para configurar autenticación por correo electrónico y sesiones en un proyecto Next.js App Router, sin que invente rutas ni recurra a una biblioteca desactualizada.\n\n## Prompt principal\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## Notas de implementación\n\n- Better Auth incluye su propio esquema; deja que genere las tablas en lugar de escribir migraciones a mano.\n- Mantén todos los secretos en `.env` y valídalos al iniciar.\n- Las sesiones deben respaldarse en la base de datos, no en JWT, para una revocación sencilla.\n\n## Cambios de archivo esperados\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## Criterios de aceptación\n\n- Un nuevo usuario puede registrarse y se escribe una fila de sesión en PostgreSQL.\n- `getSession()` devuelve el usuario en un Server Component.\n- Cerrar sesión elimina la sesión del lado del servidor.\n\n## Comandos de prueba\n\n```bash\nbun run typecheck\nbun run dev\n# then exercise /api/auth/sign-up and /api/auth/sign-in\n```\n\n## Errores comunes de la IA\n\n- Recurrir a `next-auth` aunque el prompt lo prohíba.\n- Almacenar sesiones como JWT y omitir las tablas de la base de datos.\n- Olvidar validar `BETTER_AUTH_SECRET` / `DATABASE_URL`.\n\n## Prompt de corrección\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```"
}