Client Credentials

Essa autenticação é mais simples e não envolve o cliente final

Para que é utilizado esse fluxo?

Esse tipo de autenticação é muito mais fácil que o fluxo de “Autorização e Autenticação”, pois neste caso exige apenas uma requisição ao nosso Servidor de Autorização e não precisa do consentimento do Cliente Final. Essa autenticação é utilizada apenas para as APIs das pastas de Pré-cadastro e Webhooks.

Bora pro código?

Por ser tratar de uma chamada simples não se faz necessário a criação de um diagrama. Veja a solicitação que seu sistema precisará fazer ao nosso Servidor de Autorização

CampoComentário
MétodoPOST
Endpointhttps://api.stage.cora.com.br/oauth/token
curl --location --request POST 'https://api.stage.cora.com.br/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic Base64(SEU_CLIENT_ID:SEU_CLIENT_SECRET)' \
--data-urlencode 'grant_type=client_credentials'

Os campos Authorization e Content-Type já foram mencionados no passo de “Autenticação do Authorization Code Flow", porém há mudanças no corpo da mensagem.

CampoChaveValorComentário
Bodygrant_typeclient_credentialsCampo que indica o tipo de permissão OAuth2 escolhido. Nesse caso será client_credentials

Após enviar a requisição acima, o nosso Servidor de Autorização irá responder a seguinte mensagem:

{
    "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJPUXhETFpxNmFJb1EzS1Q0dWFEWWhQai1IUUVpMm5iNGl1WEdWV0diVWh3In0.eyJleHAiOjE2NjM5NzcyMDAsImlhdCI6MTY2Mzg5MDgwMCwianRpIjoiNTA0ZDQzOWMtMmU1OS00M2VjLTkxYWMtMGM2YzFhZDVhNTMxIiwiaXNzIjoiaHR0cHM6Ly9hdXRoLnN0YWdlLmNvcmEuY29tLmJyL3JlYWxtcy9jb3JhIiwic3ViIjoiYXBwLWJlY2tlcmVwIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiYXBwLWJlY2tlcmVwIiwiYWNyIjoiMSIsInNjb3BlIjoib2ZmbGluZV9hY2Nlc3MiLCJjbGllbnRJZCI6ImFwcC1iZWNrZXJlcCIsImNsaWVudEhvc3QiOiIxNzcuNDUuMTUwLjE0NSIsImNsaWVudEFkZHJlc3MiOiIxNzcuNDUuMTUwLjE0NSJ9.bT3jNRJOdTUJjvfwfP-Cz_Gm3XlKsiqI8TOZzoVkmuM7cJpb2YZRW5nAFfoPArfaCsgJoefSUdl46kSy1siQaPGXo0lXI3oSxnvlfsNZgZMgDazIxNaIdnGkVKlwOarQAFwFlbdO5twD8_gDHiBlC3xRVb5rwSHnKNOzdfk4Oa_9bPef3zFOTk7ijnGjdguru0LLvr-dvrYzcPddosfew37tgDrXQDD_JT52298M_qwwKjfQeykQg3O83zDmtXCccVKmxS-PHEeL3OSDgGxIDpTvYf91CGdcP1K66VIav5ufTbi5GUn_LivAD_5apasri7jrRgsHcH__a45PgWqrGw",
    "expires_in": 86400,
    "refresh_expires_in": 0,
    "token_type": "Bearer",
    "not-before-policy": 1614056798,
    "scope": "offline_access"
}

Nesse passo temos apenas uma novidade. O refresh_token não é retornado, pois nesse caso é realmente desnecessário. Caso o token expire é só fazer essa chamada novamente.

Imagem
Opa, agora é hora do lanche! Sim, finalizamos a etapa de Client Credentials