Refresh Token

Refresh Token

O fluxo para a utilização do refresh token obtido no fluxo Authorization Code é uma forma de permitir ao integrador reutilizar as permissões concedidas em um fluxo para gerar novos tokens.


Especificidades

O refresh token tem uma duração de 10 dias e, toda vez que é utilizado, tem sua duração redefinida para 10 dias. Assim, é possível utilizar o token indefinidamente, contanto que não haja um desejo de mudar os escopos presente no fluxo.

Além disso, sempre que um access token é gerado por meio do refresh token, o access token antigo é inválidado caso esteja dentro do período de duração de um access token(24h)


Fluxo

RefreshFlow

Neste momento, o Client pode mandar uma requisição informando o refresh token referente ao access token expirado:

POST /oauth2/token HTTP/1.1
Host: id.btgpactual.com
Content-type: application/x-www-form-urlencoded
Authorization: Basic <client_id:client_secret> // Base 64 encoded

grant_type=refresh_token&refresh_token={refresh_token}

E assim receberá como response um novo Access Token e um novo Refresh Token:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "access_token":"eyJhbGciOiJSUzI1NiIsI",
    "refresh_token":"WV6G4HKBrvgiLoFdMBiVx",
    "scope":"apps email openid profile webhooks",
    "id_token":"eyJhbGciOiJIUzI1NiJ9.eyJz",
    "token_type":"Bearer",
    "expires_in":86400
}