ДескусДескус · Документация
Все разделыАвторизация

Согласие и код авторизации

Чтобы получить доступ к компании, отправьте её администратора на страницу согласия Дескуса. После «Разрешить» он вернётся на ваш адрес с одноразовым кодом.

Ссылка на согласие

GET https://app.deskus.ru/oauth/authorize
  ?response_type=code
  &client_id=dskapp_f18acd3e81b2ff4c896f1177
  &redirect_uri=https%3A%2F%2Fexample.com%2Foauth%2Fdeskus
  &scope=tickets%3Aread%20tickets%3Awrite%20webhooks
  &state=a8Kx2pQ
  &code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
  &code_challenge_method=S256

Параметр

Что передать

response_type

Всегда code

client_id

Из карточки приложения

redirect_uri

Один из адресов возврата, точно как в карточке

scope

Права через пробел (список)

state

Случайная строка: вернётся без изменений — сверьте её, чтобы отсечь подделку

code_challenge

base64url от SHA-256 вашего code_verifier, 43 знака. Обязателен приложению без секрета

code_challenge_method

Только S256

PKCE на Node.js

import crypto from "node:crypto";

const codeVerifier = crypto.randomBytes(32).toString("base64url"); // сохраните до обмена кода
const codeChallenge = crypto.createHash("sha256").update(codeVerifier).digest("base64url");

Что видит клиент

Не вошёл — сначала вход в кабинет, потом сразу экран согласия. На нём: «Приложение просит доступ», название компании, описание приложения, права списком, адрес, куда он вернётся, и кнопки «Разрешить» и «Отказать». «Разрешить» доступно только администратору компании.

Ответ на адрес возврата

Разрешил

https://example.com/oauth/deskus?code=dsk_c_Qm4…&state=a8Kx2pQ

Отказал

https://example.com/oauth/deskus?error=access_denied&error_description=…&state=a8Kx2pQ

Код живёт 10 минут и обменивается один раз — обмен на токены.

Ошибки

Что не так

Что будет

Неизвестный или выключенный client_id, адрес возврата не совпал

Ошибка на странице Дескуса — на непроверенный адрес клиента не уводим

response_type не code

Возврат на ваш адрес с error=unsupported_response_type

Пустой или неизвестный scope

error=invalid_scope

Нет PKCE у приложения без секрета, метод не S256

error=invalid_request

Приложение не проверено, а компания чужая

Ошибка на странице Дескуса — проверка

Не нашли ответ? Напишите нам
Поддержка ответит в рабочее время.
Вы сотрудник «Дескус»?Изменить статью в Дескусе