Skip to main content

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"
}
}
tip

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