Pular para o conteúdo principal

Autenticação

A API v1 do Rouxinol usa OAuth 2.0 Client Credentials Grant. Não existe usuário associado ao token — ele autentica a sua aplicação (o "App"), e todas as requisições feitas com esse token acessam os dados da conta (tenant) dona do App.

Criando um App​

  1. No painel do Rouxinol, acesse Apps (menu Configurações).
  2. Crie um novo App com um nome.
  3. O Client Secret é exibido uma única vez, em uma notificação — copie e guarde em local seguro, pois ele não pode ser recuperado depois.

Cada App gera um client_id e um client_secret, usados no fluxo de autenticação abaixo.

Outras ações disponíveis na tela do App:

  • Regerar Secret — gera um novo secret e invalida o anterior imediatamente.
  • Revogar/Reativar — revoga o App (e todos os tokens emitidos por ele) ou o reativa.
  • Excluir — remove o App e revoga todos os tokens associados.

Obtendo um token de acesso​

Faça uma requisição POST para /oauth/token:

export ROUXINOL_URL="https://sua-instancia.rouxinol.com"

curl -X POST "$ROUXINOL_URL/oauth/token" \
-H "Content-Type: application/json" \
-d '{
"grant_type": "client_credentials",
"client_id": "SEU_CLIENT_ID",
"client_secret": "SEU_CLIENT_SECRET"
}'

A resposta traz um access_token no padrão OAuth2:

{
"token_type": "Bearer",
"expires_in": 31536000,
"access_token": "..."
}

Usando o token​

Guarde o token em uma variável de ambiente e envie-o em todas as chamadas à API v1 no header Authorization. Todos os exemplos de curl nesta documentação assumem que $ROUXINOL_URL e $ROUXINOL_TOKEN já estão definidos:

export ROUXINOL_TOKEN="SEU_ACCESS_TOKEN"

curl "$ROUXINOL_URL/api/v1/me" \
-H "Authorization: Bearer $ROUXINOL_TOKEN"

Verificando o token — /api/v1/me​

Use GET /api/v1/me para confirmar que o token é válido e a qual conta ele pertence:

{
"status": "success",
"tenant": {
"id": 1,
"name": "Minha Empresa",
"slug": "minha-empresa"
}
}
dica

Use este endpoint como health-check da integração antes de implementar o restante do fluxo.