Перейти к основному содержимому

Аутентификация

Когда применять​

При любом обращении к 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}