{
  "id": "add-better-auth-to-nextjs",
  "type": "prompts",
  "category": "prompts",
  "locale": "pt",
  "url": "/pt/prompts/add-better-auth-to-nextjs",
  "title": "Prompt para Adicionar Better Auth ao Next.js com PostgreSQL",
  "description": "Um prompt copiável para adicionar Better Auth e gerenciamento de sessão PostgreSQL a um projeto 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": "Entregue isso ao seu agente para configurar autenticação por e-mail + sessão em um projeto Next.js App Router, sem que ele invente rotas ou recorra a uma biblioteca desatualizada.\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 Implementação\n\n- Better Auth vem com seu próprio esquema; deixe-o gerar as tabelas em vez de escrever migrações manualmente.\n- Mantenha todos os segredos em `.env` e valide-os na inicialização.\n- As sessões devem ser baseadas em banco de dados, não em JWT, para fácil revogação.\n\n## Mudanças de Arquivo Esperadas\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érios de Aceitação\n\n- Um novo usuário pode se cadastrar e uma linha de sessão é gravada no PostgreSQL.\n- `getSession()` retorna o usuário em um Server Component.\n- O logout limpa a sessão no lado do servidor.\n\n## Comandos de Teste\n\n```bash\nbun run typecheck\nbun run dev\n# then exercise /api/auth/sign-up and /api/auth/sign-in\n```\n\n## Erros Comuns da IA\n\n- Recorrer ao `next-auth` mesmo que o prompt proíba.\n- Armazenar sessões como JWTs e pular as tabelas do banco de dados.\n- Esquecer de validar `BETTER_AUTH_SECRET` / `DATABASE_URL`.\n\n## Prompt de Correção\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```"
}