Skip to content

Аутентификация

API SNABZHENETS+ использует JWT (JSON Web Token) для пользовательских запросов. Для некоторых интеграционных сценариев, например Variable API, можно использовать API keys с ограниченными scopes.

Получение токена

Отправьте POST-запрос с учётными данными:

http
POST /api/v1/auth/login
Content-Type: application/json

{
  "email": "user@company.com",
  "password": "your-password"
}

Успешный ответ:

json
{
  "accessToken": "eyJhbGciOiJIUzI1NiIs...",
  "refreshToken": "eyJhbGciOiJIUzI1NiIs...",
  "expiresIn": 3600
}

Если пользователь зарегистрирован публично и ещё не подтвердил email, вход возвращает 403 с кодом email_not_verified. Повторное письмо подтверждения можно запросить через POST /api/v1/auth/email-verification/resend; ответ не раскрывает, существует ли аккаунт.

Использование токена

Передавайте accessToken в заголовке каждого запроса:

http
GET /api/v1/purchase-requisitions
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Обновление токена

accessToken действует 1 час. Для получения нового токена без повторного ввода пароля используйте refreshToken:

http
POST /api/v1/auth/refresh
Content-Type: application/json

{
  "refreshToken": "eyJhbGciOiJIUzI1NiIs..."
}

Изоляция порталов

Каждый токен привязан к конкретному порталу. Запросы с токеном одного портала не могут получить данные другого портала.

API keys

Администратор портала может выпустить API key для внешней системы. Ключ передаётся в заголовке:

http
X-API-Key: spk_...

Ключ не заменяет пользовательский логин и не даёт полный доступ к порталу. Для Variable API он должен иметь variables.read и один или несколько доменных scopes, например catalog.read, purchase_requisitions.read, documents.read, company.read.

Для Integration API ключ можно передавать как X-API-Key: spk_... или Authorization: Bearer spk_.... Write/delete-запросы выполняются от имени пользователя, который создал ключ; ключи без пользователя-создателя работают только на чтение.

Секретная часть ключа показывается только при создании. Если ключ скомпрометирован, его нужно архивировать и выпустить новый.

Безопасность

  • Не передавайте токены в URL-параметрах
  • Храните токены в безопасном месте и не размещайте их в открытом браузерном хранилище
  • При компрометации токена — смените пароль в настройках профиля
  • Для API keys выдавайте минимальный набор scopes, необходимый интеграции

Документация платформы SNABZHENETS+.