Introdução

Esta seção contém informações sobre o processo de autenticação e a tabela de status codes.

Autenticação

OAuth 2.0

Basicamente, o OAuth 2.0 é um protocolo dos diversos tipos de fluxos de autorização de padrão aberto, que permite a terceiros (aplicações) acessarem dados de um usuário sem saber sua senha. O OAuth serve como um facilitador que os APPs usam para obter acesso a conta e aos dados de um determinado usuário, através um Client ID ou Secret (chaves de autenticação do OAuth). Caso queira saber mais, acesse este link.

Obtendo o Access Token


OAuth 2.0 Authorization Code

Passo 1 - Access token

Após efetuar seu cadastro no portal, você deverá cadastrar a sua APP. Essa APP é o seu meio de acesso e consumo as APIs disponibilizadas. Após a criação dessa APP, será gerado um campo chamado Client ID / Client Secret, que deverá ser convertido em base 64, o qual será utilizado no campo Authorization.

Em seguida, deve-ser realizar um novo POST no seguinte endpoint:

http://api-salinor.sensedia.com/oauth/access-token

O cabeçalho deve conter as seguintes informações:

Content-Type: application/json Authorization : Basic client_id:client_secret

O corpo deve conter a seguinte informação:

{ "grant_type":"client_credentials" }

Como resultado, espera-se uma resposta com um “authorization code” conforme exibido abaixo:

{ "access_token": "ad626a94-7e47-484a-bd72-36ad1f63f5f7", "token_type": "access_token", "expires_in": 3600 }

Passo 2 - Consumo das APIs

Com o par de tokens em mãos, basta utilizá-los no header de suas chamadas, conforme exibido abaixo:

client_id : f9212173-e705-373b-a698-61923e378359 access_token : 57f10f0e-3d2e-311f-a797-4011f66e1cbf

OAuth 2.0 Refresh Token

Sempre que seu access_token expirar, para que não tenha que refazer o ciclo de autenticação, desde a chamada do grant code, você pode utilizar o refresh token, onde a partir de apenas 1 requisição, você tem um novo access token para consumo.

Para isso, você deve realizar uma chamada muito parecida com a do access token, após a recuperação do grant code, onde ao invés de solicitar um authorization_code, você solicitará um refresh_token, conforme exemplos abaixo:

Deve-ser realizar um novo POST no seguinte endpoint:

http://api-salinor.sensedia.com/oauth/access-token

O cabeçalho deve conter as seguintes informações:

Content-Type: application/x-www-form-urlencoded Authorization : Basic client_id:client_secret

OBS.: Este client_id:client_secret deve ser uma string convertida em Base64, usando os dados da APP criada.
O exemplo do cabeçalho com o client_id e secret convertidos para base64, seria:

Authorization : Basic ZjkyMTIxNzMtZTcwNS0zNzNiLWE2OTgtNjE5MjNlMzc4MzU5OjAyYWI1Mjg4LTkyZGItM2FiMy05OWZkLWZhYzRhZjg1N2Q4MQ==

O corpo deve conter a estrutura abaixo (no campo refresh_token, deve ser informado o refresh token, recuperado na chamada anterior, onde foi recuperado o access_token):

"grant_type": "refresh_token" "refresh_token" : "ca81cb16-43e4-3e96-aaea-4861e7791dc7"

Como resultado, espera-se uma resposta com um novo "access token", oriundo agora do seu antigo refresh token, que permitirá o consumo das APIs, conforme exibido abaixo:

{ "access_token": "ca81cb16-43e4-3e96-aaea-4861e7791dc7", "refresh_token": "677b881a-d0b6-3b29-b9a8-f0cdb50ce035", "token_type": "access_token", "expires_in": 3600 }

Endereços para chamadas OAuth

grant-code https://api-salinor.sensedia.com/oauth/grant-code
access-token http://api-salinor.sensedia.com/oauth/access-token

Status Codes

Código Erro Descrição
200 OK

Sucesso.

400 Bad Request

A requisição possui parametro(s) inválido(s).

401 Unauthorized

O token de acesso não foi informado ou não possui acesso as APIs.

404 Not Found

O recurso informado no request não foi encontrado.

413 Request is to Large

A requisição está ultrapassando o limite permitido para o perfil do seu token de acesso.

422 Unprocessable Entity

A requisição possui erros de negócio.

429 Too Many Requests

O consumidor estourou o limite de requisições por tempo.

500 Internal Server Error

Erro não esperado, algo está quebrado na API.

Português, Brasil