Аутентификация
API SNABZHENETS+ использует JWT (JSON Web Token) для пользовательских запросов. Для некоторых интеграционных сценариев, например Variable API, можно использовать API keys с ограниченными scopes.
Получение токена
Отправьте POST-запрос с учётными данными:
POST /api/v1/auth/login
Content-Type: application/json
{
"email": "user@company.com",
"password": "your-password"
}Успешный ответ:
{
"accessToken": "eyJhbGciOiJIUzI1NiIs...",
"refreshToken": "eyJhbGciOiJIUzI1NiIs...",
"expiresIn": 3600
}Если пользователь зарегистрирован публично и ещё не подтвердил email, вход возвращает 403 с кодом email_not_verified. Повторное письмо подтверждения можно запросить через POST /api/v1/auth/email-verification/resend; ответ не раскрывает, существует ли аккаунт.
Использование токена
Передавайте accessToken в заголовке каждого запроса:
GET /api/v1/purchase-requisitions
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...Обновление токена
accessToken действует 1 час. Для получения нового токена без повторного ввода пароля используйте refreshToken:
POST /api/v1/auth/refresh
Content-Type: application/json
{
"refreshToken": "eyJhbGciOiJIUzI1NiIs..."
}Изоляция порталов
Каждый токен привязан к конкретному порталу. Запросы с токеном одного портала не могут получить данные другого портала.
API keys
Администратор портала может выпустить API key для внешней системы. Ключ передаётся в заголовке:
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, необходимый интеграции