> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lampac.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Аутентификация, лимиты и ошибки API

> Разберитесь в токенах accsdb, root-пароле, WAF, HTTP-кодах и безопасной публикации API Lampac.

Lampac использует разные механизмы доступа для пользовательских plugin/API запросов и административных интерфейсов.

## Пользовательский токен

При включённом `accsdb` токен передаётся в URL плагина:

```text theme={null}
http://HOST:9118/online/js/USER_TOKEN
http://HOST:9118/sisi/js/USER_TOKEN
http://HOST:9118/music/js/USER_TOKEN
```

Сгенерированный plugin добавляет токен к последующим запросам. Не публикуйте такой URL: токен предоставляет доступ от имени пользователя.

## Root-пароль

AdminPanel, WebLog и другие маршруты с root authorization используют файл `passwd` рядом с `Core.dll`. В браузере пароль сохраняется в cookie `accspasswd`; внутренние вызовы могут использовать заголовок `lcrqpasswd`.

К root-защищённым маршрутам относятся `/stats` и `/stats/*`, `/weblog` и AdminPanel. DatabaseEditor использует ту же root-авторизацию, но форма входа перенаправляет на `/weblog/auth`. Сервер может отвечать 404 вместо явного 401/403, чтобы не раскрывать административный endpoint.

<Danger>
  Root-пароль не является токеном accsdb. Не передавайте его в query string и не используйте для клиентских плагинов.
</Danger>

## WAF и rate limits

WAF может блокировать запрос по стране, IP, подозрительному query value или превышенному лимиту. Конкретные лимиты дополняются модулями при загрузке.

| Код           | Типичная причина                                    | Действие                                        |
| ------------- | --------------------------------------------------- | ----------------------------------------------- |
| `400`         | Неверный параметр или JSON body                     | Исправьте контракт запроса                      |
| `401` / `403` | Нет доступа, токен истёк, WAF запретил IP           | Проверьте accsdb и WAF                          |
| `404`         | Маршрут/модуль отсутствует или защита скрыла ресурс | Проверьте загрузку модуля и журнал              |
| `429`         | WAF или concurrency rate limit                      | Уменьшите частоту, учитывайте `Retry-After`     |
| `500`         | Ошибка upstream, модуля или сервера                 | Найдите TraceId и проверьте логи                |
| `502` / `504` | Ошибка reverse proxy или timeout upstream           | Проверьте proxy timeout и доступность источника |

Глобальный exception handler возвращает:

```json theme={null}
{
  "error": "Internal server error"
}
```

Подробности остаются в настроенном журнале и не раскрываются клиенту.

## Безопасный клиент

1. Используйте HTTPS для удалённого доступа.
2. Не записывайте token и cookie в application logs.
3. Ограничивайте retries и применяйте exponential backoff после `429`/`5xx`.
4. Не считайте тело ошибки стабильным контрактом, если оно не описано на странице конкретного модуля.
5. Для проверки доступности используйте безопасный endpoint модуля, а не массовый поиск по всем провайдерам.

Подробнее: [безопасность сервера](/configuration/security) и [reverse proxy](/deployment/reverse-proxy).
