К содержимому
Инвойсбокс

Обновление токена

  • те же адрес и формат тела
  • grant_type=refresh_token, client_id, refresh_token
curl -X POST https://api.invoicebox.ru/v3/security/oauth/token \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'grant_type=refresh_token' \
  -d 'client_id=my-service' \
  -d 'refresh_token=def50200a1b2…'

Ответ — той же формы, что при обмене кода:

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…",
  "token_type": "Bearer",
  "expires_in": 3600,
  "refresh_token": "def50200c3d4…",
  "scope": "merchant-read"
}
ПолеТипЧто означает
access_tokenstringновый токен доступа; прежний перестаёт действовать
token_typestringвсегда Bearer
expires_inintegerсрок в секундах от момента ответа
refresh_tokenstringновый токен обновления: прежний недействителен, храните только последний
scopestringправа через пробел; шире прежних они не станут

Внимание

Повторное использование уже обменянного refresh_token отзывает всю цепочку: и тот токен, что предъявили, и тот, что был выдан вместо него. Пользователю придётся заново дать доступ.

Так сделано намеренно. Если старый токен обновления пришёл во второй раз, значит он есть у кого-то ещё, — и правильный ответ здесь не «отказать в одном запросе», а прекратить доступ по всей цепочке. Практический вывод для вас: не обновляйте токен из двух процессов одновременно и не повторяйте запрос обновления при таймауте, не проверив, не пришёл ли ответ.

Читайте также

Страница помогла?