Skip to content

Поток подключения (Flow B) ​

Этот сценарий начинается в вашем продукте — с кнопки «Подключить Bito» в вашем интерфейсе. Вы отправляете клиента на страницу входа Bito, Bito его аутентифицирует и возвращает обратно к вам с кодом авторизации в строке запроса.

text
Ваше приложение          Браузер клиента               Bito
   |                            |                        |
   |  1. редирект на            |                        |
   |     id.bito.uz/oauth/auth  |                        |
   |--------------------------->|                        |
   |                            |  2. вход               |
   |                            |     (телефон + пароль) |
   |                            |----------------------->|
   |                            |                        |
   |                            |  3. выбор аккаунта     |
   |                            |     и подтверждение    |
   |                            |----------------------->|
   |                            |                        |  код, TTL 20 мин
   |                            |  4. редирект обратно   |
   |                            |     ?code=X&state=Y    |
   |                            |<-----------------------|
   |  callback?code=X&state=Y   |                        |
   |<---------------------------|                        |
   |                                                     |
   |  5. POST /auth/oauth/token                          |
   |---------------------------------------------------->|
   |     { access_token, refresh_token, expires_in }     |
   |<----------------------------------------------------|

1. Отправьте клиента в Bito ​

text
https://id.bito.uz/oauth/auth
  ?response_type=code
  &client_id=<client_id>
  &redirect_uri=<url-encoded callback>
  &scope=<scopes>
  &state=<случайная строка для CSRF>

Пример

text
https://id.bito.uz/oauth/auth?response_type=code&client_id=69c50a2d50f7b939923a469b&redirect_uri=https%3A%2F%2Fexample-app.com%2Fcallback&scope=admin&state=xcoiv98y2kd22vusuye3kch
ПараметрОбязателенОписание
response_typeДаВсегда code
client_idДаВаш OAuth client id
redirect_uriДаURL-кодированный адрес возврата. Передавайте redirect_uri, зарегистрированный в вашей интеграции.
scopeДаЗапрашиваемые права: admin, read, write, delete
stateНастоятельно рекомендуетсяСлучайное непрозрачное значение. Bito вернёт его без изменений — сравните при возврате, это защита от CSRF.

/oauth/auth — основной адрес страницы авторизации. Если клиент ещё не вошёл, Bito перенаправит его на страницу входа с теми же параметрами и после входа продолжит авторизацию.

2. Клиент проходит аутентификацию ​

Этот экран полностью принадлежит Bito. Клиент вводит телефон и пароль, выбирает аккаунт, если их несколько, и подтверждает запрошенные права.

В выбранном аккаунте клиент должен быть владельцем или дополнительным владельцем — обычный сотрудник подключить интеграцию не может. Кроме того, первичная настройка аккаунта (onboarding) должна быть завершена, иначе обмен кода на токены будет отклонён.

INFO

Вам не нужно реализовывать форму входа, и вы никогда не видите пароль клиента.

3. Bito возвращает клиента с кодом ​

text
https://example-app.com/callback?code=abc123def456&state=xcoiv98y2kd22vusuye3kch
ПараметрОписание
codeКод авторизации. Одноразовый, живёт 20 минут.
stateТо самое значение из шага 1. Отклоните запрос, если оно не совпало.

4. Обменяйте код на токены ​

Запрос тот же, что и во Flow A: Работа с токенами → Обмен кода авторизации.

WARNING

Обмен выполняется только на сервере. Ваш client_secret не должен попадать в браузер клиента.

Bito 2.0 Integration API