Обновление access token с помощью refresh token Яндекс OAuth

На предыдущих шагах создали приложение, получили access и refresh tokens tokens. Когда подойдет срок, чтобы не нарваться на просрочку access token, нужно сделать запрос на его обновление. Действуем согласно инструкции https://yandex.ru/dev/oauth/doc/dg/reference/refresh-client.html 

Делаем запрос на https://oauth.yandex.ru/token

POST /token HTTP/1.1
Host: oauth.yandex.ru
Content-Type: application/x-www-form-urlencoded
Content-Length: 186

grant_type=refresh_token&refresh_token=1%3AzpzHp0i1****2eo1%3AKIxHrbr1rfW2I4Ee4Smvnj5bSGUJrzM7CaOhCq-rBmyEBpvC7chW%3A3OWudeVnRArytcQ_q1Wh1A&client_id=555960e***&client_secret=5a60e11c***

{
    "access_token": "AQ***cLKH0UUTQtw0T7hhbSIC96eHg",
    "expires_in": 31531927,
    "refresh_token": "1:EH2A2px***oGj:dD***x45fBGjgNNa0usqTQz-_wmcgpPNlbyZXXgXOB:ncE1G_bbYZlXriqLl-dFbQ",
    "token_type": "bearer"
}

Поскольку времени с момента первой выдачи данного акцесс-токена прошло совсем мало, в ответе пришел старый access_token - т.е. его еще рано обновлять. Но refresh_token пришел новый. Остаток времени действия access_token показан актуальный, меньше изначальных 365*24*60*60=31536000 секунд, которые были при первой выдаче токенов.

Комментарии

Популярные сообщения из этого блога

Can't parse inline keyboard button (Telegram bot)

ТаблицаФормы с гиперссылками в ячейках

Получение access token и refresh token для работы с API Яндекс.Маркета