Docs
...

OAuth 2.0

Client Credentials

O fluxo de Credenciais do Cliente (Client Credentials Grant) é um dos fluxos de autenticação OAuth2 usado para permitir que aplicativos clientes acessem recursos em seu próprio nome, sem envolver um usuário, isto é, são chamadas de aplicação diretas a outras aplicações.

Fazendo uma requisiçao

Para receber a autorização você deve estar de posse do ID de cliente (client_id) e da chave (client_secret) da sua aplicação, que podem ser obtidas acessando o console iugu. Para configurar suas chaves, permissões a apps leia o passo a passo contido na Introdução e no Guia de usuário.

Parâmetros necessários

  • client_id (id da sua aplicação)
  • client_secret (chave de segurança da sua aplicação)
  • grant_type (para este fluxo em específico deve ser client_credentials)
  • audience (Para saber qual audience enviar, consulte aud)

Passo a passo

  1. Envie uma requisição POST para o endpoint “/token” (https://identity.iugu.com/token), com o parametro grant_type contendo o valor “client_cedentials”, o client_id e client_secret de configurados para sua aplicação e o audience correto.

  2. O servidor de autorização verifica as credenciais do cliente e, se estiverem corretas, emite um token de acesso para a aplicação, contendo as claims referentes ao token. Esse token é usado para autenticar a aplicação junto à API de processamento de pagamentos.

  3. A aplicação usa o token de acesso recebido para fazer solicitações à API de processamento de pagamentos, permitindo que ele realize cobranças em nome de seus clientes.

Exemplo

** POST em identity.iugu.com/token **

POST /token HTTP/1.1
Host: identity.iugu.com
Content-Type: application/x-www-form-urlencoded

client_id=seu_id_de_cliente&
client_secret=seu_secret&
grant_type=client_credentials
audience="Iugu.Platform"

Resposta:

{
    "access_token": "eyJ0eXAiOiJhdCtKV1QiLCJraWQiOiJjZWI5NjBjOS1iODliLTQ4MWUtYjg2NS1kY2UyZTAyMTYzNDgiLCJhbGciOiJSUzI1NiJ9.eyJleHAiOjE3MDQ4MjM1NzQsImlhdCI6MTcwNDgyMzI3NCwic3ViIjoiYXBwOjE0cm5tbndsVnlHckN5YVFnc2M4enoiLCJhdWQiOlsiSXVndS5QbGF0Zm9ybSIsIjE0cm5tbndsVnlHckN5YVFnc2M4enoiXSwic2NvcGUiOiIiLCJjbGllbnRfaWQiOiIxNHJubW53bFZ5R3JDeWFRZ3NjOHp6IiwiaXNzIjoiaHR0cHM6Ly9pZGVudGl0eS5pdWd1LmNvbS8ifQ.JTlbIDjOFXYbzT674ff0u1Q3ML1KM1iIXoTUEOTchXPC3pHuLRrjxH3o8U_rlvaEhoBCtncj8yk5hv_WcB9BgPmSlji9iXkGFfsoOPtLSfIV6UdrW_LJtJYQseY6buJW6GMJy-kveLh1AAE-8U-RbC8-qlZXjXJBNP6MehD-2QeFeDIcECQkGdjchhoPb851KuDxRis5gtEtIDuKFfNhU9EMeO1plv8rypIDwKqICnHm4e-0VyOgnq7kMT6_1DYvDtQnKBysJLMry0sk2-c7wVM4t3YatJCGsJg6jPPcSf3Owbv_AFGRTeY48DLjujULhM2kB1v813BD3f1SfqGwfQ",
    "token_type": "Bearer",
    "expires_in": 300
}

Resposta Decodificada:

{
  "exp": 1704823574,
  "iat": 1704823274,
  "sub": "app:14rnmnwlVyGrCyaQgsc8zz",
  "aud": [
    "Iugu.Platform",
    "14rnmnwlVyGrCyaQgsc8zz"
  ],
  "scope": "",
  "client_id": "14rnmnwlVyGrCyaQgsc8zz",
  "iss": "https://identity.iugu.com/"
}

Saiba Mais

Entenda composição do JWT JWT Claims