Autenticação (Next.js)
O sistema usa magic link — o corretor recebe um link por email e clica para entrar. Não há senha.
Fluxo completo
1. Corretor acessa /login
2. Digita email e envia
3. Next.js → POST /api/auth/magic-link
4. Next.js → POST https://api.viacorretor.com.br/v1/auth/magic-link
5. FastAPI cria MagicLinkToken (UUID, expira 15min) e envia email
6. Corretor clica no link: /auth/callback?token=<uuid>
7. Next.js → GET /api/auth/callback?token=<uuid>
8. Next.js → GET https://api.viacorretor.com.br/v1/auth/verify?token=<uuid>
9. FastAPI valida token → retorna JWT
10. Next.js seta cookie HttpOnly: galgal_token=<jwt>
11. Corretor é redirecionado para /dashboard
Cookie JWT
| Atributo | Valor |
|---|---|
| Nome | galgal_token |
| Tipo | HttpOnly (inacessível ao JavaScript do browser) |
| SameSite | Lax |
| Expira | Segue expiração do JWT (configurável via JWT_SECRET) |
Proteção de rotas (middleware)
src/middleware.ts protege automaticamente todas as rotas /dashboard/* e /admin/*:
- Sem cookie → redireciona para
/login - Cookie expirado → redireciona para
/login - Cookie válido → deixa passar
Dev login (sem email)
Para desenvolvimento, com DEV_LOGIN=true no .env da FastAPI:
# Via API direto
curl -X POST http://localhost:8000/v1/auth/dev-login \
-H "Content-Type: application/json" \
-d '{"email": "glauci@viacorretor.com.br"}'
# Via Next.js API route (seta o cookie automaticamente)
curl -X POST http://localhost:3000/api/auth/dev-login \
-H "Content-Type: application/json" \
-d '{"email": "glauci@viacorretor.com.br"}'
Logout
POST /api/auth/logout → remove cookie galgal_token → redireciona para /login
Dados do corretor autenticado
Após login, o dashboard busca o perfil via GET /v1/me (FastAPI), que decodifica o JWT e retorna os dados do Broker vinculado ao email.