Autenticação e autorização
Servidores
-
Homologação: https://homolog-auth.targetinformacoes.com
-
Produção: https://auth.targetinformacoes.com
Obtendo o Access Token
-
O sistema de autorização e autenticação se basea no uso do protocolo oAuth2 e Bear token.
-
Antes de iniciar, é necessário ter em mãos o Client ID e o Client Secret; caso ainda não possua, solicite o mesmo.
-
A titulo de exemplo, vamos usar o Client ID 123 e o Client Secret 321
O primeiro passo a se fazer, é gerar a hash em base64 do client_id e do client_secret que irá representar a sua credential:
import base64
client_id = "123"
client_secret = "321"
credential = "{0}:{1}".format(client_id, client_secret)
credential = base64.b64encode(credential.encode("utf-8"))
Com a credential em mãos, é só fazer a requisição POST no endpoint /oauth/token/ para receber o token de autorização.
Não esqueça de informar o scope, para está API o scope é o pefin e ele dará direito de escrita e leitura nos endpoints
curl -X POST \
-H "Authorization: Basic ${CREDENTIAL}" \
-H "Cache-Control: no-cache" \
-H "Content-Type: application/x-www-form-urlencoded" \
"https://homolog-auth.targetinformacoes.com/oauth/token/" \
-d "grant_type=client_credentials&scope=pefin"
Exemplo de retorno com o Acess token gerado
{
"access_token": "PaZDOD5UwzbGOFsQr34LQ7JUYOj3yK",
"expires_in": 36000,
"token_type": "Bearer",
"scope": "pefin"
}
Descrição dos campos retornados
| Campo | Descrição |
|---|---|
| access_token | Token de acesso. Este token é informado no cabeçalho da requisição e identifica a sua aplicação logada. |
| expires_in | Por razão de segurança, o token tem um tempo de expiração que é definido em segundos, por padrão, o serviço de autenticação expira em 36000 segundos, podendo ser alterado ou em alguns casos retornar com um tempo diferente, portanto, não sete o tempo de expiração fixo no código, recupe o mesmo pelo retorno do servidor. |
| token_type | Tipo do token utilizado nas requisições, utilizamos o Bearer token |
| scope | Escopo que a aplicação tem permissão, não é necessariamente o scope que foi solicitado para o endpoint /oauth/token/ este é apenas o que a aplicação tem permissão de acesso daqueles que foi solicitado anteriormente |