Skip to content

OAuth 2.0

Marcos Kapp edited this page Mar 15, 2018 · 10 revisions

Para acessar as APIs do Varejonline, o aplicativo deve solicitar a permissão do seu usuário. Este processo é feito através do protoloco OAuth. Quando o aplicativo desejar acessar os serviços da API do Varejonline, ele deve iniciar o fluxo abaixo para obter um token de acesso. Este token fornecerá ao aplicativo permissões para acessar os dados da empresa do seu usuário.

Cadastro do aplicativo

Para acessar os dados no Varejonline, o desenvolvedor deve criar uma conta no DevCenter e cadastrar seu aplicativo. Este cadastro gerará duas informações:

  • client_id: o ID do aplicativo no Varejonline
  • client_secret: a chave do aplicativo para acesso à API. Esta chave deve ser mantida em segredo.

Ambas as informações serão necessárias para realizar o fluxo de autorização.

Fluxo de autorização

A obtenção do token se dá em duas etapas. Na primeira, o aplicativo obtém um authorization code. Na segunda, o aplicativo usa o authorization code para obter o token.

Obtendo o authorization code

Para iniciar o fluxo de autorização via OAuth, o aplicativo deve redirecionar o usuário para o seguinte endereço:

https://integrador.varejonline.com.br/apps/oauth/authorization?response_type=code&client_id=<b>CLIENT_ID</b>&redirect_uri=<b>REDIRECT_URI</b>

Onde:

Quando o usuário é redirecionado, o Varejonline solicita o seu login e pergunta se ele permite que o aplicativo acesse seus dados. Se o usuário aceitar, o Varejonline o redireciona para a redirect_uri informada.

Ao redirecionar, o Varejonline envia na requisição o seguinte parâmetro:

  • code: authorization code gerado.

Exemplo:

http://www.meuapp.com.br/oauth/callback?code=<b>AUTHORIZATION_CODE</b>

Obtendo o token

Ao receber a requisição na redirect_uri o aplicativo deve guardar o authorization_code recebido e realizar a seguinte chamada para obter o token, direto do seu servidor para o servidor da Varejonline:

POST https://integrador.varejonline.com.br/apps/oauth/token

Passando no corpo da requisição os seguintes parâmetros:

  • grant_type: usar o texto "authorization_code".
  • client_id: O ID do aplicativo no Varejonline, obtido no cadastro.
  • client_secret: A chave do aplicativo para acesso à API, obtida no cadastro.
  • redirect_uri: a mesma redirect_uri utilizada na obtenção do authorization code.
  • code: o authorization_code obtido no passo anterior.

Esses parâmetros podem ser enviados tanto com "Content-Type: application/x-www-form-urlencoded" quanto com "Content-Type: application/json".

Exemplos:

POST https://integrador.varejonline.com.br/apps/oauth/token
Content-Type: application/x-www-form-urlencoded

client_id=506329c6d93aab197a000013&client_secret=9182dcef5abc948c845236c0dad0b3c6201f56545a232a9c21803e3a2433372b&
code=21111f6f88fb5d70a6441f862a2342d40f8345fa7cf75ca45654a7b21381049&grant_type=authorization_code&
redirect_uri=http%3A%2F%2Fmeudominio%2Foauth%2Fcallback
POST https://integrador.varejonline.com.br/apps/oauth/token
Content-Type: application/json

{
  "grant_type":"authorization_code",
  "client_id":"502e7de8d93a4b4aad000010",
  "client_secret":"2f630161f708371433e0ff24e6a5b3705b566bbda8c85205b3d6deb6b1b744c9",
  "redirect_uri":"http://www.meuapp.com.br/oauth/calback",
  "code":"5d27be8e3bc6fac6ecfcd30c46188da0223b1b7df2e451a7f8aa643058c362cf"
}

A resposta desta requisição trará um JSON, contendo os seguintes parâmetros:

  • access_token: o token gerado.
  • expires_in: segundos de duração do token.
  • refresh_token: token utilizado para gerar um novo token com nova data de expiração.
  • cnpj_empresa: o CNPJ da empresa, cliente da Varejonline, na qual o usuário logou.
  • id_terceiro: o id do usuário logado. Para obter mais dados do usuário é possível consultar a API de terceiros com este ID.
  • nome_terceiro: o nome do usuário logado.

Exemplo:

{
  "access_token":"4285007069f6e024ff10bece2c772acd4733bc4f363e316517147f751fd351e9",
  "expires_in":1800,
  "refresh_token":"e4e8ae71ddf715db5b75f32349719e05acd64c80b5ac633861ed0e4af4dddaf0",
  "cnpj_empresa":"99999999000199",
  "id_terceiro":"123",
  "nome_terceiro":"Nome do Usuário"
}

Usando o token

Com o token, o aplicativo pode realizar as chamadas à API do Varejonline.

O token pode ser enviado no body da requisição, em um JSON. Exemplo:

GET: https://integrador.varejonline.com.br/apps/api/terceiros
{
  "token":"4285007069f6e024ff10bece2c772acd4733bc4f363e316517147f751fd351e9"
}

Ou pode ser enviado como parâmetro da requisição. Exemplo:

GET: https://integrador.varejonline.com.br/apps/api/terceiros?token=4285007069f6e024ff10bece2c772acd4733bc4f363e316517147f751fd351e9

Exemplos de implementação

Introdução

Endpoints de Integração

Administrativo

Comercial

Compras

Financeiro

Controle de crédito

Fiscal

Contábil

Operacional

Dicas Gerais

Filtros Padrões

Tabelas Padrões

Atualizações

Clone this wiki locally