Prompt para Adicionar Better Auth ao Next.js com PostgreSQL
Um prompt copiável para adicionar Better Auth e gerenciamento de sessão PostgreSQL a um projeto Next.js App Router.
CursorClaude CodeCodex Next.jsPostgreSQLTypeScript
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.
Prompt Principal
You are working in a Next.js App Router project that uses TypeScript and PostgreSQL.
Task: add authentication using Better Auth.
Requirements:- Use the `better-auth` package. Do NOT use next-auth/auth.js.- Configure email + password auth with database-backed sessions.- Use the existing PostgreSQL connection; create the auth tables via Better Auth's schema.- Add a server-side `auth` instance in `src/lib/auth.ts`.- Mount the handler at `app/api/auth/[...all]/route.ts`.- Add a typed `getSession()` helper for Server Components.- Do not touch unrelated files. Show me the diff before applying.
Stop after the code changes and list exactly which files you created or edited.Notas de Implementação
- Better Auth vem com seu próprio esquema; deixe-o gerar as tabelas em vez de escrever migrações manualmente.
- Mantenha todos os segredos em
.enve valide-os na inicialização. - As sessões devem ser baseadas em banco de dados, não em JWT, para fácil revogação.
Mudanças de Arquivo Esperadas
src/lib/auth.ts (new)app/api/auth/[...all]/route.ts (new)src/lib/get-session.ts (new).env.example (edited)package.json (edited)Critérios de Aceitação
- Um novo usuário pode se cadastrar e uma linha de sessão é gravada no PostgreSQL.
getSession()retorna o usuário em um Server Component.- O logout limpa a sessão no lado do servidor.
Comandos de Teste
bun run typecheckbun run dev# then exercise /api/auth/sign-up and /api/auth/sign-inErros Comuns da IA
- Recorrer ao
next-authmesmo que o prompt proíba. - Armazenar sessões como JWTs e pular as tabelas do banco de dados.
- Esquecer de validar
BETTER_AUTH_SECRET/DATABASE_URL.
Prompt de Correção
You used a different auth library or JWT sessions. Redo it with `better-auth`and database-backed sessions only. Remove any next-auth code you added.