Ошибки авторизации
401 Unauthorized при запросе к транспортному API
Причины и действия:
| Причина | Действие |
|---|---|
| Access token истёк | Вызвать POST /api/auth/refresh для получения нового токена |
| Refresh token истёк | Пройти авторизацию по логину и паролю заново |
| Токен не передаётся | Убедиться, что заголовок Authorization: Bearer <token> присутствует в запросе |
| Токен передан некорректно | Убедиться, что значение соответствует формату: Bearer + JWT без переносов строк |
401 при ACK после успешного GET /receive
Наиболее опасная ситуация: сообщение принято и зафиксировано в локальном хранилище, но ACK не прошёл из-за истечения токена.
Последствие: сервер DataHUB считает сообщение недоставленным и повторно доставит его при следующем запросе. Обработчик должен быть идемпотентным — повторная обработка того же сообщения не должна изменять состояние системы.
Действие: обновить токен, продолжить цикл получения.
Ошибка «неверный логин или пароль»
Проверить: 1. Логин указан точно как в Личном кабинете DataHUB (регистр важен). 2. Пароль не содержит пробелов в начале/конце (частая ошибка при копировании). 3. Учётная запись не заблокирована.
2FA: код не приходит
Проверить:
1. Номер телефона указан корректно в профиле пользователя DataHUB.
2. SMS-провайдер настроен на стороне DataHUB (параметры в конфигурации сервера).
3. Код запрашивается повторно через POST /api/auth/login/two-factor/resend.
Токены в 1С: «Доступ запрещён» сразу после авторизации
Причина: токены сохраняются в регистрах модуля, но при следующем обращении передаётся старый токен из кэша.
Действие: принудительно повторить авторизацию через кнопку «Авторизация» в форме настроек — это сбросит сохранённые токены и получит новые.
Истечение refresh token в автоматическом режиме
В 1С-модуле обмен работает без участия пользователя. Если refresh token истёк ночью или в выходные, обмен прекратится до ручной повторной авторизации.
Рекомендация: настроить мониторинг статуса фоновых заданий в 1С (раздел «Текущее состояние» формы настроек) или внешний мониторинг доступности через GET /api/exchange/whoami.