Аутентификация
Tessium аутентифицирует WebSocket-соединения с помощью API-ключа.
Передача ключа
| Способ | Лучше всего для | Компромисс |
|---|---|---|
| Query string | Быстрый старт и локальные эксперименты | URL может попасть в логи прокси или соединений |
| Первое сообщение | Продакшен-сервисы | Клиент должен отправить auth до любой другой команды |
Query string
Укажите ключ в query string при открытии сокета:
wss://api.tessium.dev/stream?key=YOUR_API_KEYПервое сообщение
Чтобы ключ не попадал в URL, подключитесь к wss://api.tessium.dev/stream и отправьте первым сообщением:
{ "op": "auth", "key": "tsk_live_..." }Создавайте и ротируйте ключи в дашборде.
Рекомендуется для продакшена
Аутентифицируйтесь первым сообщением, чтобы обратные прокси и логи соединений не получали ключ в URL.
Храните ключи на сервере
Относитесь к ключу как к паролю. Не встраивайте платные ключи в публичные фронтенды. Маркетинговое демо может использовать общий бесплатный ключ; продакшен-боты должны держать свой ключ в секрете.
Чеклист безопасности
- Храните ключи в переменных окружения или менеджере секретов.
- Используйте отдельные ключи для разработки и продакшена.
- Никогда не коммитьте ключ и не печатайте его в логах приложения.
- Немедленно ротируйте ключ, если он мог быть скомпрометирован.
- Отзывайте ключи, которые больше не используются.
Авторизация и лимиты
Ключ несёт план аккаунта-владельца. Лимиты плана определяют:
- на какие стримы можно подписаться
- сколько одновременных подписок и соединений можно держать
- какие уровни детализации можно запрашивать
Если подписка отклонена, сервер отвечает фреймом ошибки с причиной. Платные апгрейды оплачиваются криптовалютой со страницы цен или через checkout в дашборде.
Состояния ключа
Ключ может быть active, suspended или expired. Suspended и expired ключи отклоняются при аутентификации. Ключ, отозванный во время соединения, даёт key_revoked; прекратите его использовать и ротируйте учётные данные.