Autenticação

Veja os principais conceitos que usamos para verificação de usuários no contexto da integração

A autenticação, no contexto da integração com o Melhor Envio, é a forma como vai ser feita a verificação do usuário que está realizando alguma requisição através da API. Usamos o padrão de autenticação Oauth 2.0, onde é necessário criar um aplicativo que vai ser o responsável por gerenciar os tokens de acesso de um ou mais usuários do Melhor Envio.

Oauth 2.0

Oauth 2.0 é um padrão de segurança de acesso destinado para APIs, permitindo que terceiros consumam recursos de um usuário de uma aplicação de maneira segura.

Através deste padrão, serão registrados aplicativos e geradas as informações necessárias para solicitação da autorização de acesso. Esta etapa vai acontecer por meio de um painel do Melhor Envio acessado por uma URL específica que vai ser montada utilizando as informações do aplicativo.

Uma vez autorizado o aplicativo, você deverá realizar uma requisição server-to-server em vias de solicitar o access_token, que servirá como uma chave de acesso às informações do respectivo usuário.

No Melhor Envio os access_tokens possuem validade de 30 dias, sendo necessário implementar uma rotina de refresh token sempre que a validade do access_token expirar. Para isto, sempre vai ser retornado junto ao access_token também um respectivo refresh_token com validade 45 dias.

Scopes

Scopes são as permissões de acesso que você está solicitando ao usuário para sua plataforma usar. Eles devem ser passados no momento da autorização na URL de autorização, sendo que os tokens gerados terão sempre estas permissões.

Para modificar as permissões já concedidas por um determinado usuário é necessário realizar um novo pedido de autorização solicitando os devidos scopes.

É uma boa prática que sejam solicitados apenas aqueles scopes necessários para a integração. Quem vai autorizar o aplicativo também deve saber quais permissões de acesso estão sendo concedidas no momento da autorização.

Token

Tokens representam a autorização de um aplicativo específico para acessar partes de dados de algum usuário. São uma representação de chaves encriptadas que devem ser visíveis apenas pelo servidor da aplicação, o servidor de autorização e o servidor responsável pelo recurso a ser acessado.

Os tokens do Melhor Envio são baseados no método [JSON Web Tokens] (http://jwt.io) (JWT), padrão web de representação segura para tratar transferências entre duas partes distintas. Algumas informações podem ser extraídas do JWT facilmente, sendo simples verificar se os dados de token estão corretos com base no que foi requisitado.

$tokenParts = explode('.', $token);

$tokenHeader = json_decode(base64_decode($tokenParts[0]));
$tokenPayload = json_decode(base64_decode($tokenParts[1]));
$tokenSignature = $tokenParts[2];

print($tokenPayload);