Аутентификация
Когда применять
При любом обращении к API: перед вызовом методов нужно установить сессию.
Методы
Аутентификация основана на cookie-сессии. Вход выдаёт токен сессии; диспетчер
валидирует каждый запрос по этому токену, переданному в params.auth.cookie.
На сервере cookie заменяется на uid вызывающего. Запросы аутентификации
обрабатываются отдельным путём от прикладных вызовов.
Токен сессии передаётся в каждом прикладном вызове:
{"jsonrpc": "2.0", "method": "cluster-overview", "params": {"auth": {"cookie": "..."}}, "id": 1}
Если cookie не передан, запрос отклоняется JSON-RPC ошибкой с кодом -9494
(«No session token»):
{"jsonrpc": "2.0", "id": 1, "error": {"code": -9494, "message": "No session token"}}
Принудительная смена пароля
Если у пользователя выставлен флаг must_change_password, вместо обычной сессии
вход выдаёт одноразовый temp_token (формат tmp:<sha384_hex>, TTL 5 минут).
Ответ приходит с code: 2, токен лежит в data.cookie.APIEndpoint00. Через
temp_token доступны только два метода: user-set-password и
auth-security-settings-get. После смены пароля токен удаляется, флаг сбрасывается.
{"jsonrpc": "2.0", "id": 1, "result": {"code": 2, "data": {"cookie": {"APIEndpoint00": "tmp:abc123..."}, "message": "must change password"}}}
Выход
Метод auth-logout завершает серверную сессию вызывающего. С all: true —
все сессии пользователя (выход со всех устройств):
{"jsonrpc": "2.0", "method": "auth-logout", "params": {}, "id": 1}