Поток подключения (Flow B)
Этот сценарий начинается в вашем продукте — с кнопки «Подключить Bito» в вашем интерфейсе. Вы отправляете клиента на страницу входа Bito, Bito его аутентифицирует и возвращает обратно к вам с кодом авторизации в строке запроса.
Ваше приложение Браузер клиента 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
https://id.bito.uz/oauth/auth
?response_type=code
&client_id=<client_id>
&redirect_uri=<url-encoded callback>
&scope=<scopes>
&state=<случайная строка для CSRF>Пример
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 возвращает клиента с кодом
https://example-app.com/callback?code=abc123def456&state=xcoiv98y2kd22vusuye3kch| Параметр | Описание |
|---|---|
code | Код авторизации. Одноразовый, живёт 20 минут. |
state | То самое значение из шага 1. Отклоните запрос, если оно не совпало. |
4. Обменяйте код на токены
Запрос тот же, что и во Flow A: Работа с токенами → Обмен кода авторизации.
WARNING
Обмен выполняется только на сервере. Ваш client_secret не должен попадать в браузер клиента.