Pular para o conteúdo

Autenticação

A API do Healthing CRM usa autenticação JWT (JSON Web Token). Este guia explica como obter e usar tokens de acesso.

┌─────────┐ POST /auth/login ┌─────────┐
│ Cliente │ ────────────────────────► │ API │
│ │ ◄──────────────────────── │ │
└─────────┘ access_token + └─────────┘
refresh_token
POST /api/v1/auth/login
{
"email": "usuario@empresa.com",
"password": "sua_senha"
}
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 1800
}
Terminal window
curl -X POST https://crm.healthing.com.br/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "usuario@empresa.com", "password": "sua_senha"}'

Inclua o token em todas as requisições:

GET /api/v1/contacts
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Terminal window
curl https://crm.healthing.com.br/api/v1/contacts \
-H "Authorization: Bearer SEU_ACCESS_TOKEN"

O access token expira em 30 minutos. Use o refresh token para obter um novo:

POST /api/v1/auth/refresh
{
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 1800
}
TokenDuração
Access Token30 minutos
Refresh Token7 dias
GET /api/v1/auth/me
{
"id": 1,
"email": "usuario@empresa.com",
"full_name": "Nome Completo",
"tenant_id": 1,
"role": "admin",
"is_active": true,
"created_at": "2024-01-15T10:30:00Z"
}
POST /api/v1/auth/logout

Invalida o refresh token atual.

{
"detail": "Could not validate credentials",
"code": "INVALID_CREDENTIALS"
}

Causas:

  • Token expirado
  • Token inválido
  • Token não fornecido
{
"detail": "Not enough permissions",
"code": "INSUFFICIENT_PERMISSIONS"
}

Causas:

  • Usuário sem permissão para a operação
  • Tentando acessar recurso de outro tenant
  1. Nunca exponha tokens em logs ou URLs
  2. Armazene tokens de forma segura (não em localStorage para apps web)
  3. Implemente refresh automático antes do token expirar
  4. Use HTTPS sempre
  5. Revogue tokens quando o usuário fizer logout