Pular para o conteúdo principal

Documentation Index

Fetch the complete documentation index at: https://docs.cativa.digital/llms.txt

Use this file to discover all available pages before exploring further.

Em 5 minutos você vai ter um botão Entrar com Cativa funcionando no seu app. Esse fluxo é ideal quando você quer que o usuário final autentique com a conta dele da comunidade.
Os endpoints SSO da Cativa seguem o padrão OIDC e são organizados por slug do tenant ({customerName}). Esse slug é o subdomínio público da comunidade — confirme com o admin do tenant qual valor usar.
1

Crie um OAuth App no Console

Vá em app.cativa.digital/admin/developers, aba OAuth Apps, clique em Criar app.Anote o client_id e o client_secret retornados. O secret aparece uma única vez — guarde com cuidado.
2

Configure o redirect URI

No mesmo modal, adicione seu redirect URI (ex: https://meuapp.com/callback ou http://localhost:3000/callback para desenvolvimento).
3

Redirecione o usuário para o /authorize

No frontend, gere um code_verifier e code_challenge (PKCE) e redirecione para o endpoint /authorize do tenant:
const verifier = generateRandomString(64);
const challenge = await sha256(verifier);
sessionStorage.setItem('pkce_verifier', verifier);

const params = new URLSearchParams({
  client_id: 'CLIENT_ID_AQUI',
  redirect_uri: 'https://meuapp.com/callback',
  response_type: 'code',
  scope: 'openid profile email',
  code_challenge: challenge,
  code_challenge_method: 'S256',
  state: crypto.randomUUID()
});

// Substitua {customerName} pelo slug do tenant
window.location.href = `https://apis.cativalab.digital/social/v1/sso/{customerName}/authorize?${params}`;
4

Troque o code por um access_token no callback

Depois que o usuário consente, a Cativa redireciona pra sua URL com ?code=...&state=.... No backend, faça POST no endpoint /token do mesmo tenant com o body em application/x-www-form-urlencoded:
curl -X POST https://apis.cativalab.digital/social/v1/sso/{customerName}/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "code=CODE_DO_CALLBACK" \
  -d "client_id=CLIENT_ID_AQUI" \
  -d "client_secret=SECRET_AQUI" \
  -d "redirect_uri=https://meuapp.com/callback" \
  -d "code_verifier=VERIFIER_DA_SESSION"
A resposta segue o padrão OIDC e contém access_token, token_type, expires_in e id_token.
5

Pegue informações do usuário

Use o access_token no endpoint userinfo:
curl https://apis.cativalab.digital/social/v1/sso/{customerName}/userinfo \
  -H "Authorization: Bearer ACCESS_TOKEN"
Resposta:
{
  "sub": "01HQ7Z3X4Y5Z6A7B8C9D0E1F2G",
  "name": "Maria Silva",
  "email": "maria@exemplo.com",
  "picture": "https://cdn.cativa.digital/avatars/..."
}
O documento de descoberta OIDC do tenant fica em https://apis.cativalab.digital/social/v1/sso/{customerName}/.well-known/openid-configuration e lista todos os endpoints (authorize, token, userinfo, jwks) e algoritmos suportados (S256 para PKCE, ES256 para assinatura do id_token). O JWKS público fica em https://apis.cativalab.digital/social/v1/sso/{customerName}/jwks. Bibliotecas como jose (Node) ou PyJWT (Python) leem o discovery e validam o id_token automaticamente.

Próximos passos

Tenants e Customers

Entenda o conceito de customerName no fluxo OIDC e quando o tenant aparece nas integrações.

Primeira chamada de API

Para integrações server-to-server, use API Key direto em vez de OAuth.