Pular para o conteúdo principal
Um parceiro se autentica com client credentials do OAuth 2.0. O provedor de identidade é o Amazon Cognito. O MyPilotIndex cria um cliente confidencial para cada parceiro aprovado, e esse cliente só pode usar o fluxo client credentials: nenhum token que ele recebe pode representar um piloto.

Obtendo um token

Envie um POST para o endpoint de token do domínio do provedor de identidade, https://{cognito-domain}/oauth2/token, com autenticação HTTP Basic do cliente (o seu client id como nome de usuário e o seu client secret como senha):
A produção usa auth.mypilotindex.com. O sandbox usa o domínio do ambiente de dev, que entregamos junto com a sua credencial de sandbox. Envie o access token no cabeçalho Authorization: Bearer de toda chamada à API de Parceiros. Na criação do cliente, os tokens são emitidos com validade de 60 minutos. Leia expires_in na resposta do token em vez de depender desse número, e peça um novo token quando ele expirar.

Scopes

Um token carrega só os scopes para os quais o seu parceiro foi aprovado. Um scope é escrito partner/<name> na requisição do token e no próprio token. Um grant guarda o nome puro, por exemplo hours.write. A troca de código, a lista de grants, a conferência de certificado e o teste de webhook não exigem scope, só um token válido. O resumo do piloto exige que o grant e o token tenham pelo menos um entre profile, score, hours.read e licenses, e mostra só os blocos que o grant permite. O envio de totais de voo exige hours.write tanto no token quanto no grant. Se faltar um scope exigido, a resposta é 403 forbidden com o motivo scope_missing.

Duas coisas que decidem uma chamada

  • O token diz quem você é e o que você pode pedir a um piloto.
  • O grant diz qual piloto permitiu o quê a você. As rotas que indicam um grant respondem 404 not_found para um grant revogado, desconhecido ou de outro parceiro, sempre da mesma forma.
Uma chamada com token ausente, expirado ou inválido responde 401.