O login é feito via POST com as credenciais no corpo da requisição (JSON). Nunca são enviadas via URL (GET query params).
Fluxo de Autenticação (2 etapas)
O AssessIQ usa um fluxo de duas etapas antes de criar a sessão:Verificar credenciais + 2FA
POST /api/auth/check-credentials — valida email/senha e informa se 2FA é necessário.POST /api/auth/check-credentials
Valida as credenciais e retorna se o usuário precisa passar por 2FA.Request
Resposta — sem 2FA
Resposta — com 2FA habilitado
Erros
| Status | Descrição |
|---|---|
400 | Email ou senha ausentes |
401 | Credenciais inválidas |
429 | Muitas tentativas (rate limit: 5/10 min por IP) |
POST /api/auth/callback/credentials
Endpoint interno do NextAuth que cria a sessão. É chamado automaticamente pelosignIn() do next-auth/react — não chame diretamente.
next-auth.session-token (HttpOnly, Secure) é retornado na resposta.
Obtendo o CSRF Token
Necessário para chamar o endpoint de callback diretamente (clientes não-browser).Verificar Sessão Atual
Logout
OAuth (Google)
/{locale}/home.
Notas de Segurança
- Senhas armazenadas com bcrypt (cost factor 10)
- Senha mínima: 8 caracteres
- Sessões expiram e são invalidadas via
sessionVersionno banco - 2FA disponível por e-mail ou TOTP
DEFAULT_DEV_PASSWORDbloqueado em produção — usuários sem senha devem usar o fluxo “esqueci minha senha”