К содержимому

Справочник запросов

Адрес авторизации

Пользователя отправляют на https://id.invoicebox.ru/ с параметрами в строке запроса.

ПараметрЧто означает
applicationId *идентификатор приложения, выданный службой поддержки
redirectUri *адрес возврата; должен совпадать с зарегистрированным
state *случайная строка; вернётся без изменений, по ней сверяется подлинность возврата
codeChallenge *SHA-256 от codeVerifier в base64url
codeChallengeMethod *S256

Пример:

https://id.invoicebox.ru/?applicationId=my-service&redirectUri=https%3A%2F%2Fmy-service.ru%2Fauth%2Fcallback%2F&state=8f2c…&codeChallenge=k7Yb…&codeChallengeMethod=S256

После входа пользователь возвращается на redirectUri с параметрами code и state.

Обмен кода на токен

  • метод: POST
  • ресурс: /v3/security/api/auth/token
  • тело запроса — объект ниже
  • вызывается с сервера: токен не должен попадать в браузер
СвойствоТипОписание
applicationId *stringидентификатор приложения
redirectUri *stringтот же адрес, что в запросе авторизации
code *stringкод из параметров возврата
codeVerifier *stringисходная строка, от которой считался codeChallenge
clientSecretstringтолько если для приложения выпущен секрет; публичным клиентам не нужен
POST /v3/security/api/auth/token
Content-Type: application/json
Accept: application/json

{
  "applicationId": "my-service",
  "redirectUri": "https://my-service.ru/auth/callback/",
  "code": "e3b0c44298fc1c14",
  "codeVerifier": "s9Zx1kQd…"
}

Ответ:

{
  "data": {
    "accessToken": "b37c4c689295904ed21eee5d9a48d42e"
  }
}

Токен может прийти строкой или вложенным объектом — в реализациях Инвойсбокса разбор устроен терпимо: берётся data.accessToken, а если там объект, то accessToken внутри него. Код обмена одноразовый: повторный запрос с тем же code завершится ошибкой.

Профиль пользователя

  • метод: GET
  • ресурс: /v3/security/api/auth/auth
  • заголовок: Authorization: Bearer <токен>
{
  "data": {
    "userId": "01771533-8e75-3234-8e3d-9213ae2d7c52",
    "profile": {
      "firstName": "Пётр",
      "lastName": "Смирнов",
      "email": "buh@example.invbox.ru"
    }
  }
}

Важно

Код 200 не означает успешную авторизацию. Ответ с userId: null приходит и тогда, когда токен не передан или не распознан. Признак рабочего токена — непустой userId.

Этим же запросом удобно проверять, жива ли сессия, перед показом страниц пользователя.

Завершение сессии

  • метод: DELETE
  • ресурс: /v3/security/api/auth/logout
  • заголовок: Authorization: Bearer <токен>

Запрос завершает сессию на стороне Инвойсбокса. Свои куки сервис удаляет сам — если оставить их, человек останется «войденным» в интерфейсе с уже недействительным токеном.

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

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