Demo extremamente simples de autenticação com GitHub usando Better Auth, Next.js (App Router) e SQLite.
- ✅ Login/Signup via GitHub OAuth
- ✅ Página Home mostrando estado da sessão
- ✅ Persistência local com SQLite
- ✅ UI bonita com Tailwind CSS
- Node.js 18+ instalado
- Conta no GitHub
- npm
- Acesse: https://github.com/settings/developers
- Clique em "New OAuth App"
- Preencha:
- Application name:
Demo Better Auth - Homepage URL:
http://localhost:3000 - Authorization callback URL:
http://localhost:3000/api/auth/callback/github
- Application name:
- Copie o Client ID e gere um Client Secret
Edite o arquivo .env.local e adicione suas credenciais:
GITHUB_CLIENT_ID=seu_github_client_id_aqui
GITHUB_CLIENT_SECRET=seu_github_client_secret_aqui
BETTER_AUTH_URL=http://localhost:3000npm installnpx @better-auth/cli migrateEste comando cria o arquivo better-auth.sqlite com todas as tabelas necessárias.
npm run devAcesse: http://localhost:3000
├── app/
│ ├── api/auth/[...all]/route.ts # Route handler do Better Auth
│ ├── login/page.tsx # Página de login
│ └── page.tsx # Página home
├── lib/
│ ├── auth.ts # Configuração do Better Auth (servidor)
│ └── auth-client.ts # Cliente Better Auth (browser)
├── .env.local # Variáveis de ambiente
└── better-auth.sqlite # Banco de dados (gerado após migrate)
- Acesse http://localhost:3000
- Clique em "Ir para Login"
- Clique em "Entrar com GitHub"
- Autorize o aplicativo
- Você será redirecionado e verá "Logado como seu_email@github.com"
- Clique em "Sair" para encerrar a sessão
- Next.js 15 - Framework React
- Better Auth - Biblioteca de autenticação
- SQLite (better-sqlite3) - Banco de dados local
- Tailwind CSS - Estilização
- TypeScript - Tipagem estática
- O banco
better-auth.sqliteé criado localmente e persiste entre restarts - As credenciais do GitHub são apenas para desenvolvimento local
- Para produção, configure URLs corretas e use variáveis de ambiente seguras
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.