Аутентификация
Выберите личный ключ API или OAuth 2.1 с PKCE.
Используйте личный ключ API для собственных скриптов. Используйте OAuth для приложения, действующего от имени других клиентов NinjaBuy, включая клиентов MCP.
OAuth 2.1
Используйте поток кода авторизации с PKCE S256. REST и MCP принимают один и тот же токен доступа OAuth NinjaBuy. Каждый токен действует от имени аккаунта, который выполнил вход и разрешил доступ; выбрать другой аккаунт в теле запроса нельзя.
Все конечные точки OAuth используют адрес https://www.ninjabuy.com. Пути обнаружения и авторизации:
Метаданные OAuth · Метаданные ресурса MCP
POST /api/auth/mcp/register
GET /api/auth/mcp/authorize
POST /api/auth/mcp/token- Зарегистрируйте клиент через
POST /api/auth/mcp/register. Публичный клиент отправляет JSON сclient_name,redirect_urisиtoken_endpoint_auth_method: "none". Сохраните полученныйclient_id. - Создайте новые случайные
stateиcode_verifierPKCE. Вычислитеcode_challengeкак SHA-256, закодированный в base64url. - Откройте
/api/auth/mcp/authorizeв браузере пользователя с параметрамиresponse_type=code,client_id,redirect_uri,state,code_challenge,code_challenge_method=S256иscope=openid offline_access. - Пользователь входит по своему номеру телефона NinjaBuy и разрешает доступ вашему приложению. В обработчике обратного вызова проверьте
state, прежде чем использовать полученныйcode. - Отправьте POST в кодировке формы на
/api/auth/mcp/tokenсgrant_type=authorization_code,code,client_id, тем жеredirect_uriиcode_verifier.
Передавайте полученный токен доступа в REST-запросах:
Authorization: Bearer YOUR_ACCESS_TOKENТокены доступа действуют 1 час. При использовании offline_access токены обновления позволяют продлевать доступ в течение 7 дней. Для обновления отправьте на тот же адрес токенов POST в кодировке формы с grant_type=refresh_token, client_id и refresh_token. Храните токены безопасно и выполните вход повторно, когда обновление станет недействительным.
Отсутствующий, истёкший или недействительный токен доступа возвращает 401 с заголовком WWW-Authenticate, указывающим на метаданные. См. Ошибки.