Skip to main content
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

Após 5 tentativas falhas em 10 minutos, o IP fica bloqueado por 10 minutos.

POST /api/auth/callback/credentials

Endpoint interno do NextAuth que cria a sessão. É chamado automaticamente pelo signIn() do next-auth/reactnão chame diretamente.
O cookie 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)

Redireciona para o fluxo OAuth do Google. Após autenticação, retorna para /{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 sessionVersion no banco
  • 2FA disponível por e-mail ou TOTP
  • DEFAULT_DEV_PASSWORD bloqueado em produção — usuários sem senha devem usar o fluxo “esqueci minha senha”