3. Fluxo Client Credentials

  • O método torna possível autenticar suas solicitações para a Web API da Dotz. No entanto, note que este fluxo não inclui autorização e, portanto, não pode ser usado para acessar ou gerenciar dados privados de um usuário. Este fluxo é descrito na RFC-6749.
441

1. Sua aplicação requisita a Autorização

A requisição é enviada para https://api.dotzlabs.com/accounts/v1/connect/token do serviço de Accounts:

curl -X POST https://api.dotzlabs.com/accounts/v1/connect/token -H "authorization: Basic Nlh...NjNRUA==" -d "grant_type=client_credentials&scope=addressdata.api%20storelocator.api%20rewards.api"

Essa requisição deve incluir os parâmetros no corpo da requisição:

Parâmetro do corpo da requisiçãoValor
scopeRequerido. Um ou mais escopos solicitados pelo token.
grant_typeRequerido. Definir como 'client_credentials'.

O header da requisição POST deve conter os seguintes parâmetros:

Parâmetro do HeaderValor
AuthorizationRequerido. Seqüência codificada em Base 64 que contém o client id e a client secret da aplicação cliente. O campo deve ter o formato: Authorization: Basic

Exemplo de requisição com resposta:

curl -X POST http://uat-accounts.dotzlabs.com/connect/token -H "authorization: Basic Nlh...NjNRUA==" -d "grant_type=client_credentials&scope=addressdata.api%20storelocator.api%20rewards.api"
{
    "access_token":"eyJhb...8KIw",
    "expires_in":3600,
    "token_type":"Bearer"
}

2. Use o access token para acessar a Web API da Dotz

O access token permite que você faça requisições aos pontos de extremidade da Web API da Dotz, que não requerem autorização do usuário, como o ponto de extremidade Obter Estados,, por exemplo:

curl -X GET https://api.dotzlabs.com/address-data/v1/states?_pageSize=10&_page=1 -H "authorization: Bearer eyJh...InmQ"
{
  "items": [
    {
      "id": "MT8J7PSCVXQHHS9Y",
      "abreviation": "AC",
      "name": "Acre"
    },
    {
      "id": "768VFHC3PMULECQB",
      "abreviation": "AL",
      "name": "Alagoas"
    },
    ...]
}