AllyOneCRM / Autenticação

Autenticação

O AllyOneCRM tem dois modelos de credencial, para dois usos diferentes: sessão de usuário (produto/dashboard) e integração servidor-a-servidor (API).

Sessão de usuário — JWT

Usada pela própria aplicação web e por qualquer client que precise agir como um usuário logado.

POST/v1/auth/register

Cria o tenant e o primeiro usuário numa única chamada — não existe etapa manual de aprovação para começar a testar.

Resposta
{
  "accessToken": "eyJhbGciOiJIUzI1NiIs...",
  "refreshToken": "9f2c9e7a-...",
  "tenant": { "id": "...", "name": "..." },
  "user": { "id": "...", "email": "...", "role": "owner" }
}

Envie o token em toda chamada autenticada:

Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
  • Algoritmo HS256, expira em 4 horas.
  • Payload contém userId, tenantId e role — o tenant é sempre resolvido a partir do token, nunca de um header solto.
  • refreshToken é um UUID opaco com TTL deslizante de 24h — cada uso renova a janela.

Integração servidor-a-servidor — API Key

Para chamar a API a partir do seu backend, sem um usuário logado por trás.

POST/v1/api-keys

Só o owner do tenant cria chaves. A chave é exibida em texto puro uma única vez, na criação — o backend guarda só o hash (SHA-256) dela. Se você perder o valor, precisa gerar uma nova.

Formato da chave
crm_live_3f9a1c...  (prefixo + 64 caracteres hex)

Use no header em toda chamada:

X-API-Key: crm_live_3f9a1c...

Escopo

Toda chave carrega uma lista explícita de permissões, por exemplo:

contacts.readcontacts.writejourneys.readsettings.manage

Ou ["*"] para acesso irrestrito — uma escolha consciente do owner na criação, nunca o padrão implícito. Para ajustar permissões sem invalidar a chave existente:

PATCH/v1/api-keys/:id/permissions
Rate limit

300 requisições por minuto por usuário em sessão, ou por endereço IP de origem com API key (rotas de login e cadastro: 5 a cada 15 minutos). Toda resposta traz X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset; ao exceder, a API responde 429 com Retry-After. Detalhes em Erros e limites. Se sua integração precisa de mais throughput, fale com o time AllyOne.

Autenticação — AllyOneCRM