Metodos de autenticacao
O Kortex Insight usa dois metodos de autenticacao dependendo do tipo de endpoint:
1. Bearer Token (JWT)
Endpoints protegidos exigem um token JWT no header Authorization.
curl -H "Authorization: Bearer {seu_token}" \
https://{sua_api_base_url}/leads
O token e obtido via endpoint /auth/token trocando um authorization code do Auth0,
ou via /auth/dev/token em ambiente de desenvolvimento.
Fluxo OAuth2 (Producao)
Obter authorization code
Redirecione o usuario para o Auth0 com PKCE. Apos login, voce recebe um code.
Trocar code por token
Envie o code para POST /auth/token com grant_type: authorization_code.
Usar o token
Inclua o accessToken retornado no header Authorization: Bearer {token}.
Renovar token
Use o refreshToken com grant_type: refresh_token para obter um novo token.
Token de Desenvolvimento
Em ambientes development e test, voce pode emitir tokens locais sem Auth0:
curl -X POST http://localhost:3000/auth/dev/token \
-H "Content-Type: application/json" \
-d '{"auth0Sub": "auth0|admin-user"}'
O endpoint /auth/dev/token so funciona quando JWT_SECRET esta configurado
e o ambiente nao e production.
2. API Key (x-tenant-key)
Endpoints publicos e webhooks usam uma API key no header x-tenant-key:
curl -X POST https://{sua_api_base_url}/public/leads \
-H "x-tenant-key: {sua_api_key}" \
-H "Content-Type: application/json" \
-d '{"name": "Joao", "whatsapp": "5511999999999", "source": "website"}'
A API key e gerada automaticamente ao criar um tenant e pode ser consultada
pelo admin via GET /tenants/:id.
Roles (Papeis)
| Role | Descricao |
|---|
ADMIN | Acesso total: gerencia tenants, usuarios, instancias WhatsApp |
OPERATOR | Acesso operacional: gerencia leads, mensagens, templates, dashboards |
O role e retornado no campo user.role da resposta de autenticacao.