Pular para o conteúdo principal

Autenticação

A API usa o token do usuário. Esse token não é enviado nas chamadas do dia a dia: ele é trocado por um token de sessão (JWT), de validade limitada, e é o token de sessão que acompanha cada requisição.

1. Gerar o token do usuário​

O token é gerado na tela Usuários (módulo Administrativo):

  1. Abra Administrativo > Usuários.
  2. Na linha do usuário, clique em Key Gerar chave para API.
  3. Copie a chave exibida. Ela aparece uma única vez.

Cada usuário tem uma chave. Gerar outra invalida a anterior. A chave tem 64 caracteres hexadecimais (0-9 e a-f). Trate-a como uma senha: não a coloque em código-fonte nem em histórico de conversas, e guarde-a em variável de ambiente ou em um cofre de segredos.

O botão aparece para quem tem permissão de edição na tela Usuários.

2. Obter a sessão​

POST /auth/login-by-token

Corpo (JSON):

CampoObrigatórioDescrição
tokenSimA chave do usuário gerada no passo anterior (64 caracteres hexadecimais)

Exemplo:

curl -X POST https://api.pedagogo.app/auth/login-by-token \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"token": "<chave-do-usuario>"}'

Resposta (200):

{
"token": "<token-de-sessao-jwt>",
"expires_in": 1789999999
}
CampoDescrição
tokenToken de sessão (JWT) para usar nas demais chamadas
expires_inInstante em que o token de sessão expira, em segundos desde 01/01/1970 (timestamp Unix)

Esta chamada aceita até 10 tentativas por minuto. Se a chave for inválida, ou se o usuário ou o cliente estiver inativo, a resposta é 401 com a mensagem Invalid Credentials..

Quando o token de sessão expirar, repita a chamada para obter outro.

3. Usar o token de sessão​

Envie o token de sessão no cabeçalho Authorization de toda chamada:

curl https://api.pedagogo.app/administrative/departments \
-H "Accept: application/json" \
-H "Authorization: Bearer <token-de-sessao-jwt>"

Conferir a sessão​

ChamadaDescrição
GET /auth/check-loginConfirma que o token de sessão é válido. Devolve status: success
GET /auth/meDevolve os dados do usuário logado, o cliente, os pacotes do cliente e as integrações ativas dele

Encerrar a sessão​

POST /auth/logout invalida o token de sessão informado. Para voltar a usar a API, obtenha uma nova sessão com a chave do usuário.

Erros de autenticação e de acesso​

Todos devolvem status 401 com um corpo {"error": "..."}:

MensagemQuando acontece
Token JWT ausente.O cabeçalho Authorization: Bearer ... não foi enviado
Token JWT inválido.O token não existe, foi encerrado com logout ou não pertence a um usuário válido
Token JWT expirado.O token de sessão passou do prazo de validade
Client inactive. You don`t have access.A empresa cliente do usuário está inativa
User inactive. You don`t have access.O usuário está inativo
You do not have access to this page.O pacote do cliente ou o grupo de acesso do usuário não libera a tela a que o endpoint pertence

Boas práticas​

  • Use um usuário exclusivo para cada integração, para saber quem fez cada alteração: o sistema registra o usuário que criou e que alterou cada registro.
  • Renove o token de sessão quando faltar pouco para expires_in, em vez de esperar o erro 401.
  • Se suspeitar que a chave vazou, gere outra na tela Usuários: a anterior deixa de valer na hora.