Autenticação

Antes de realizar uma solicitação para qualquer uma de nossas APIs, você deve obter um token de acesso. Consulte a seção "Autenticação com OAuth 2.0" para mais detalhes.

Por exemplo, se quisermos obter uma lista de produtos, devemos incluir no cabeçalho Authorization a string Bearer concatenada com o access-token fornecido por nosso servidor de autenticação.


curl --location --request GET 'https://api.osigu.com/v1/products/search' \
--header 'Authorization: Bearer f45203f1-666f-4bb7-a020-6af1995f7b2a'

Nossos serviços são acessíveis apenas via HTTPS. As solicitações realizadas por HTTP simples falharão.

📘

Nota

É importante que o Client-ID e Client-Secret fornecidos nunca estejam acessíveis publicamente ou de forma fácil, como em código de programação do lado do cliente.

Nosso servidor OAuth2 oferece os seguintes tipos de autenticação:

ModoDescrição
client_credentialsÉ utilizado para o consumo de nossas APIs e na implementação de nossos widgets.
passwordEste método geralmente não é utilizado em nossas integrações com terceiros; serve para a autenticação de um usuário por meio de nome de usuário e senha.
refresh_tokenQuando um token é gerado utilizando nome de usuário e senha, é fornecido um refresh_token junto com o access_token para solicitar um novo access_token se o anterior tiver expirado.
authorization_codeÉ utilizado quando um terceiro deseja autenticar um usuário utilizando nosso formulário de autenticação disponível no servidor de autenticação.

Widgets e APIs

Para o uso de nossos widgets e consumo de nossas APIs, fornecemos a cada um de nossos clientes duas credenciais de acordo com a integração desejada: Client-ID e Client-Secret.

Para esses dois tipos de integração, o modo a ser utilizado será client_credentials. O exemplo a seguir mostra como fazer uma solicitação de um access token no ambiente de sandbox:

curl --location --request POST 'https://sandbox.osigu.com/v1/oauth/token?grant_type=client_credentials' \
--header 'Authorization: Basic bWVkaWNhbC1jYXRhbG9ncy1hcGk6NGY4MzdiNzQtNWMzYi00ZTY2LTk0NDYtMjI3YjMyNDJiMDU2'

A solicitação requer autenticação do tipo Basic Auth, onde o Client-ID é o nome de usuário e o Client-Secret é a senha; ambos os valores formam a string enviada no cabeçalho Authorization.

Dependendo do cliente com o qual você está realizando a solicitação, poderá enviar os valores de username e password separadamente, e o sistema se encarregará de fazer a codificação em base64. Também é possível concatenar os valores da seguinte maneira: Client-ID + : + Client-Secret, e a string resultante é codificada em base64.

Se a autenticação for bem-sucedida, a solicitação para o recurso /v1/oauth/token?grant_type=client_credentials retornará uma resposta como o exemplo a seguir.

{
  "access_token": "da77faca-0600-4e03-a7a2-f78a6675e605",
  "token_type": "bearer",
  "expires_in": 86399,
  "scope": "read write",
  "extensions": {}
}

Se a autenticação não for válida com os valores fornecidos de Client-ID e Client-Secret, você receberá a seguinte resposta:

{
  "error": "unauthorized",
  "error_description": "Full authentication is required to access this resource"
}