Autenticação
A API HAASS usa OAuth 2.0 — Client Credentials. Você troca as credenciais do
seu client por um access_token (Bearer) e o envia no header Authorization de
todas as demais chamadas.
Fluxo
Como autenticar
-
Obtenha as credenciais —
client_ideclient_secretfornecidos pela HAASS. -
Solicite o token em
POST /oauth/tokencom as credenciais no headerAuthorization: Basic. -
Use o token no header de toda chamada de recurso:
Authorization: Bearer <access_token>
Quickstart
# credenciais fornecidas pela HAASS
export HAASS_API="https://api.haass.com.br"
export CLIENT_ID="seu_client_id"
export CLIENT_SECRET="seu_client_secret"
# 1) emitir o token e guardar em $TOKEN
# (curl monta o header "Authorization: Basic" a partir do -u; jq extrai o token)
TOKEN=$(curl -s -X POST "$HAASS_API/api/v1/oauth/token" \
-u "$CLIENT_ID:$CLIENT_SECRET" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d 'grant_type=client_credentials' | jq -r '.access_token')
# 2) usar o token em uma rota de recurso
curl "$HAASS_API/api/v1/organization/company" \
-H "Authorization: Bearer $TOKEN"
O curl -u "$CLIENT_ID:$CLIENT_SECRET" gera o header Authorization: Basic <base64>
automaticamente. O exemplo usa jq para ler o
access_token da resposta.
O token expira em expires_in segundos (ex.: 3600 = 1 hora). Guarde-o e
reutilize enquanto estiver válido; ao receber 401, emita um novo. Evite pedir um
token novo a cada requisição.
Erros de autenticação
| Código | Quando | O que fazer |
|---|---|---|
401 Unauthorized | Token ausente, malformado, inválido ou expirado (a resposta traz WWW-Authenticate: Bearer error="invalid_token"). | Emita um novo token e reenvie a requisição. |
403 Forbidden | Token válido, porém sem escopo suficiente para a rota. | Solicite à HAASS os escopos necessários. |
Nunca exponha o client_secret em código que roda no cliente (browser/app). A
emissão do token deve acontecer no seu backend.