Ir para o conteúdo

Autenticação e autorização

O processo de autenticação para as APIs segue o protocolo oAuth 2.0, via fluxo Authorization Code. Nesse fluxo, sua aplicação terá acesso às informações de usuários através da autorização dos mesmos. Caso você não possua as credenciais client_id e client_secret de uma aplicação cliente, será necessário criar sua aplicação (vide seção Como criar sua aplicação).

Vídeo de instruções para autenticação

Tabela de variáveis

Campo Tipo Descrição Obrigatório
CLIENT_ID string ID público da aplicação cliente no IdMagalu Sim
CLIENT_SECRET string Segredo da aplicação cliente no IdMagalu Sim
REDIRECT_URI string URL de redirecionamento do cliente, que receberá o código de autorização (AUTHORIZATION_CODE) Sim
SCOPES string Escopos de consentimento. Exemplo: scope_1 scope_2 scope_3 Sim
AUTHORIZATION_CODE string Código de autorização (code) do usuário retornado na REDIRECT_URI Sim
ACCESS_TOKEN string Token JWT de acesso às APIs da plataforma Sim
REFRESH_TOKEN string Token JWT do fluxo de refresh Sim
TOKEN_TYPE string Tipo do token. Exemplo: Bearer Sim
EXPIRES_IN integer Expiração dos tokens JWT Sim
CREATED_AT timestamp Data de criação dos tokens JWT Sim

Fluxo via código de autorização do usuário (Authorization Code)

Passo 1 - O usuário irá se autenticar com o IdMagalu.

Redirecione o usuário para o IdMagalu a partir de uma URL com a seguinte estrutura:

https://id.magalu.com/login?client_id=<CLIENT_ID>&redirect_uri=<REDIRECT_URI>&scope=<SCOPES>&response_type=code&choose_tenants=true

Exemplo de chamada:

https://id.magalu.com/login?client_id=fSbG5kB3iv5x9sLioaweMSaw3Qhb5xlTC3JpxGFdpd0&redirect_uri=http://localhost:3000/redirect&scope=open:portfolio:read open:order-order:read&response_type=code&choose_tenants=true

Nota

Saiba quais são os escopos de pedidos e os escopos de produtos.

A tela de login do IdMagalu aparecerá para o usuário:

Imagem Login IdMagalu

Passo 2 - O usuário concederá permissão para que a aplicação acesse suas informações.

Se houver permissões para serem concedidas, a seguinte tela aparecerá para o usuário:

Imagem Permissões de Acesso

Nota

Caso as permissões já tenham sido concedidas em algum momento, esta tela não será exibida ao usuário.

Após realizar login e dar permissões, o usuário será redirecionado para a REDIRECT_URI, onde virá o código de autorização (code). Segue abaixo um exemplo de como localizar este código de autorização diretamente na barra de endereços do navegador:

Imagem Code

Passo 3 - A partir do código de autorização concedido pelo usuário, crie um token de acesso às APIs da plataforma.

Chamada:

curl --location --request POST 'https://id.magalu.com/oauth/token' \
--header 'Content-Type: application/json' \
--data-raw '{
    "client_id": "<CLIENT_ID>",
    "client_secret": "<CLIENT_SECRET>",
    "redirect_uri": "<REDIRECT_URI>",
    "code": "<AUTHORIZATION_CODE>",
    "grant_type": "authorization_code"
}
'

Resposta:

{
    "access_token": "<ACCESS_TOKEN>",
    "token_type": "<TOKEN_TYPE>",
    "expires_in": "<EXPIRES_IN>",
    "refresh_token": "<REFRESH_TOKEN>",
    "scope": "<SCOPES>",
    "created_at": "<CREATED_AT>"
}

Passo 4 - Após obter o token é necessário fazer o onboarding para cada cliente que der o consentimento, confira aqui.

Renovação de token

Para realizar o processo de renovação do token (refresh_token), execute a seguinte chamada:

Chamada:

curl --location 'https://id.magalu.com/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=<REFRESH_TOKEN>' \
--data-urlencode 'client_id=<CLIENT_ID>' \
--data-urlencode 'client_secret=<CLIENT_ID>' \
--data-urlencode 'refresh_token=<REFRESH_TOKEN>'

Resposta:

{
    "access_token": "<ACCESS_TOKEN>",
    "token_type": "<TOKEN_TYPE>",
    "expires_in": "<EXPIRES_IN>",
    "refresh_token": "<REFRESH_TOKEN>",
    "scope": "<SCOPES>",
    "created_at": "<CREATED_AT>"
}