Renovar Access Token
O fluxo Refresh token é utilizado para trocar um temporary grants do tipo refresh_token
por um Access Token quando o Access Token em uso estiver próximo do vencimento e este tiver sido obtido a partir do fluxo Authorization code. O Access Token recebido através do endpoint tem validade de 180 dias (6 meses) e passado esse período é preciso reconfigurar todo o fluxo de autorização.
Além disso, o fluxo permite continuar utilizando um Access Token válido com as mesmas características do token original sem a necessidade de uma nova interação com o usuário. Ao realizar este fluxo, o token original é trocado por um novo token que também oferece a possibilidade de limitar os scopes devolvendo um novo refresh token para ser trocado no futuro.
Siga os passos abaixo para renovar o Access Token.
- Envie o código do
refresh_token
, as suas credenciais e oauthorization_code
(veja Criação) ao endpoint /oauth/token com o código dorefresh_token
no stringgrant_type
para receber uma nova resposta com um novoaccess_token
e um novorefresh_token
. - Atualize a aplicação com o Access Token recebido na resposta.
<?php
$client = new OauthClient();
$request = new OAuthRefreshRequest();
$request->client_secret = "CLIENT_SECRET";
$request->client_id = "CLIENT_ID";
$request->refresh_token = "REFRESH_TOKEN";
$client->refresh($request);
?>
OauthClient client = new OauthClient();
String refreshtoken = "TG-XXXXXXXX-241983636";
client.createCredential(refreshtoken, null);
const client = new MercadoPagoConfig({ accessToken: 'access_token', options: { timeout: 5000 } });
const oauth = new OAuth(client);
oauth.refresh({
'client_secret': 'your-client-secret',
'client_id': 'your-client-id',
'refresh_token': 'refresh-token'
}).then((result) => console.log(result))
.catch((error) => console.log(error));
curl -X POST \
'https://api.mercadopago.com/oauth/token'\
-H 'Content-Type: application/json' \
-d '{
"client_id": "client_id",
"client_secret": "client_secret",
"grant_type": "refresh-token",
"refresh_token": "TG-XXXXXXXX-241983636",
}'