Pular para o conteúdo

Autenticacao

O NooviFlow usa JWT (JSON Web Tokens) para autenticacao. Faca login para obter um access token e use-o em todas as requisicoes subsequentes.

Tokens JWT

O access token expira em 24 horas. Use o refresh token para obter um novo access token sem precisar fazer login novamente.

POST/api/auth/login

Autentica com email e senha, retorna tokens JWT.

Body

NomeTipoObrigatorioDescricao
emailstringSimEmail do usuario
passwordstringSimSenha
curl -X POST "https://flow.seudominio.com/api/auth/login" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "admin@empresa.com",
    "password": "sua_senha"
  }'
200Login bem-sucedido
json
{
  "success": true,
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIs...",
    "refreshToken": "eyJhbGciOiJIUzI1NiIs...",
    "user": {
      "id": "clx...",
      "email": "admin@empresa.com",
      "fullName": "Admin",
      "role": "admin"
    }
  }
}
POST/api/auth/register

Registra um novo usuario e cria uma conta.

Body

NomeTipoObrigatorioDescricao
emailstringSimEmail
passwordstringSimSenha (min 8 caracteres)
fullNamestringSimNome completo
companyNamestringNaoNome da empresa
bash
curl -X POST "https://flow.seudominio.com/api/auth/register" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "novo@empresa.com",
    "password": "senha_segura_123",
    "fullName": "Maria Santos",
    "companyName": "Empresa ABC"
  }'
POST/api/auth/refresh

Renova o access token usando o refresh token.

Body

NomeTipoObrigatorioDescricao
refreshTokenstringSimRefresh token obtido no login
bash
curl -X POST "https://flow.seudominio.com/api/auth/refresh" \
  -H "Content-Type: application/json" \
  -d '{ "refreshToken": "eyJhbGciOiJIUzI1NiIs..." }'
200Novos tokens
json
{
  "success": true,
  "data": {
    "accessToken": "eyJ...(novo)...",
    "refreshToken": "eyJ...(novo)..."
  }
}
GET/api/auth/me

Retorna o perfil do usuario autenticado.

bash
curl -s "https://flow.seudominio.com/api/auth/me" \
  -H "Authorization: Bearer $TOKEN" | jq .
200Perfil do usuario
json
{
  "success": true,
  "data": {
    "id": "clx...",
    "email": "admin@empresa.com",
    "fullName": "Admin",
    "role": "admin",
    "avatarUrl": null,
    "emailVerified": true,
    "account": {
      "id": "clx...",
      "name": "Empresa ABC"
    }
  }
}
PUT/api/auth/password

Altera a senha do usuario autenticado.

Body

NomeTipoObrigatorioDescricao
currentPasswordstringSimSenha atual
newPasswordstringSimNova senha (min 8 caracteres)
bash
curl -X PUT "https://flow.seudominio.com/api/auth/password" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "currentPassword": "senha_antiga", "newPassword": "nova_senha_123" }'

Recuperacao de Senha

POST/api/auth/forgot-password

Envia email com link de recuperacao de senha.

Body

NomeTipoObrigatorioDescricao
emailstringSimEmail do usuario
POST/api/auth/reset-password

Reseta a senha usando o token recebido por email.

Body

NomeTipoObrigatorioDescricao
tokenstringSimToken de reset (do email)
passwordstringSimNova senha (min 8 caracteres)

Setup Inicial

GET/api/auth/needs-setup

Verifica se o sistema precisa de configuracao inicial (primeiro usuario).

200Status do setup
json
{ "success": true, "data": { "needsSetup": true, "requiresSetupToken": false } }
POST/api/auth/setup

Cria o primeiro SuperAdmin do sistema.

Body

NomeTipoObrigatorioDescricao
emailstringSimEmail do admin
passwordstringSimSenha (min 8 caracteres)
fullNamestringSimNome completo
companyNamestringNaoNome da empresa

Multi-tenant

Um usuario pode pertencer a multiplas contas. Use estes endpoints para alternar entre contas.

GET/api/auth/accounts

Lista as contas/organizacoes do usuario.

200Contas do usuario
json
{
  "success": true,
  "data": [
    { "id": "clx1...", "name": "Empresa A", "role": "admin" },
    { "id": "clx2...", "name": "Empresa B", "role": "agent" }
  ]
}
POST/api/auth/switch-account

Troca o contexto para outra conta. Retorna novos tokens JWT.

Body

NomeTipoObrigatorioDescricao
accountIdstringSimID da conta destino