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
Campo | Comentário |
---|---|
Método | POST |
Endpoint | https://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.
Campo | Chave | Valor | Comentário |
---|---|---|---|
Body | grant_type | client_credentials | Campo 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.
Updated almost 2 years ago