Аутентификация
Bazex использует OAuth 2.0 Authorization Code flow. Мерчант одобряет ваше приложение, и вы получаете токен доступа с ограниченными правами для вызова API от его имени.
OAuth 2.0 Flow
1. Ваше приложение перенаправляет мерчанта → страница авторизации Bazex
2. Мерчант просматривает запрашиваемые права и одобряет
3. Bazex перенаправляет обратно в ваше приложение с ?code=...
4. Ваш сервер обменивает код → токен доступа
5. Используйте токен для вызова App API
Шаг 1: Перенаправление на авторизацию
Перенаправьте мерчанта на экран согласия Bazex:
https://admin.bazex.co/apps/authorize?app_id=YOUR_CLIENT_ID&scopes=read_products,read_ordersQuery-параметры
| Name | Type | Description |
|---|---|---|
| app_id | string | Client ID вашего приложения |
| scopes | string | Список запрашиваемых прав через запятую (по умолчанию — зарегистрированные права приложения) |
| state | string | Произвольное значение для защиты от CSRF — возвращается без изменений в callback |
| redirect_url | string | Должен совпадать с одним из зарегистрированных redirect URL |
Мерчант видит название вашего приложения, описание и запрашиваемые разрешения. Когда он одобряет, Bazex перенаправляет на ваш зарегистрированный redirect URL.
Шаг 2: Получение кода авторизации
После одобрения мерчант перенаправляется на ваш callback URL:
https://your-app.com/callback?code=a1b2c3d4e5f6...&state=your_state_valueСрок действия кода
Шаг 3: Обмен кода на токен доступа
Выполните серверный POST-запрос для обмена кода авторизации на токен доступа. Для аутентификации используйте HTTP Basic с вашим Client ID и Client Secret.
curl -X POST https://api.bazex.co/apps/oauth/token \
-H "Authorization: Basic $(echo -n 'YOUR_CLIENT_ID:YOUR_CLIENT_SECRET' | base64)" \
-H "Content-Type: application/json" \
-d '{ "code": "a1b2c3d4e5f6..." }'{
"access_token": "fbat_9a8b7c6d5e4f3a2b1c0d...",
"token_type": "Bearer",
"scope": "read_products read_orders",
"business_id": "clx1abc2def3ghi4jkl",
"webhook_secret": "whsec_a1b2c3d4..."
}Храните безопасно
access_token показывается только при обмене кода — его нельзя получить повторно. Сохраните его надёжно в вашей базе данных. Токен не имеет срока действия; он отзывается, когда мерчант удаляет ваше приложение.Использование токена доступа
Передавайте токен в заголовке Authorization для всех запросов к API:
curl https://api.bazex.co/app-api/products \
-H "Authorization: Bearer fbat_9a8b7c6d5e4f3a2b1c0d..."Токен привязан к конкретному мерчанту (бизнесу). Все ответы API автоматически фильтруются по данным этого мерчанта. Вы не можете получить доступ к данным других мерчантов с тем же токеном.
Форматы токенов
| Токен | Префикс | Назначение |
|---|---|---|
| Access Token | fbat_ | Аутентификация API — передаётся в заголовке Authorization |
| Client Secret | fbcs_ | Обмен OAuth-токена — используется в Basic-аутентификации |
| Webhook Secret | whsec_ | Проверка подписи вебхуков |
Области доступа (Scopes)
Scopes определяют, к каким данным может обращаться ваше приложение. Запрашивайте только необходимые права — мерчанты охотнее одобряют приложения с минимальными запросами разрешений.
| Scope | Описание |
|---|---|
| read_products | Просмотр каталога товаров мерчанта |
| write_products | Создание, обновление и удаление товаров |
| read_orders | Просмотр заказов и истории заказов |
| write_orders | Создание заказов и обновление статусов |
| read_analytics | Просмотр аналитики |
| read_business | Просмотр информации о бизнесе |
| read_reviews | Просмотр отзывов |
| read_pages | Просмотр страниц сайта |
| write_pages | Создание и редактирование страниц сайта |
Расширение прав и повторное согласие
Если вы добавите новые scopes в ваше приложение после того, как оно уже установлено, существующим мерчантам потребуется повторное одобрение. Bazex обрабатывает это автоматически:
- Вы добавляете новые scopes в портале разработчика и отправляете на проверку
- После одобрения существующие установки помечаются флагом
needsReConsent - Мерчант видит запрос на одобрение дополнительных разрешений
- До повторного одобрения токен предоставляет доступ только к первоначальным scopes