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:1
Verificar credenciais + 2FA
POST /api/auth/check-credentials — valida email/senha e informa se 2FA é necessário.2
Criar sessão NextAuth
signIn('credentials', { email, password }) via NextAuth.js — cria o cookie JWT de sessão.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
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”