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
-
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. -
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.
-
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