Токены: обмен кода, обновление и отзыв
Код меняют на пару токенов: доступ на час и обновление на 90 дней. Запросы — с вашего сервера, с client_secret.
Обмен кода
Запрос
curl https://app.deskus.ru/api/oauth/token \
-u "dskapp_f18acd3e81b2ff4c896f1177:dsk_s_…" \
-d grant_type=authorization_code \
-d code=dsk_c_Qm4… \
-d redirect_uri=https://example.com/oauth/deskus \
-d code_verifier=…Ответ 200
{
"access_token": "dsk_a_…",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "dsk_r_…",
"scope": "tickets:read tickets:write webhooks"
}Тело —
application/x-www-form-urlencodedили JSON.Приложение — заголовком
Authorization: Basic(как-uу curl) или полямиclient_idиclient_secretв теле. У приложения без секрета — толькоclient_id.redirect_uri— тот же, что при входе.code_verifier— тот, от которого считалиcode_challenge.
Обновление
curl https://app.deskus.ru/api/oauth/token \
-u "dskapp_…:dsk_s_…" \
-d grant_type=refresh_token \
-d refresh_token=dsk_r_…Ответ — новая пара токенов. Старая перестаёт работать сразу, в том числе старый токен доступа. Сохраняйте новый refresh_token — прежний второй раз не примут.
Обновление одноразовое
Если уже использованный refresh_token придёт снова, Дескус считает его утёкшим и отзывает подключение целиком: компании придётся подключить приложение заново. Обновляйте токен в одном месте и не повторяйте запрос при обрыве вслепую.
Отзыв
curl https://app.deskus.ru/api/oauth/revoke \
-u "dskapp_…:dsk_s_…" \
-d token=dsk_r_…Отзыв
refresh_token— приложение отключается от компании: все токены гаснут, его подписки на события удаляются. Так делайте кнопку «Отключить Дескус».Отзыв токена доступа — гаснет только он.
Неизвестный токен — тоже
200 {}: мы не подсказываем, какие токены существуют.
Ошибки
Ответ 400
{ "error": "invalid_grant", "error_description": "Срок кода истёк — начните вход заново." }
| Когда |
|---|---|
| Нет |
| Неизвестный или выключенный |
| Код не найден, истёк или уже использован; не тот |
| Приложение не проверено Дескусом, а компания чужая (проверка) |
|
|
| Больше 120 запросов в минуту с одного адреса, ждите |
Код, который пытаются обменять второй раз, тоже признак утечки: токены, выданные по нему, отзываются.
