wiki:ApiLogin

Version 1 (modified by alx, 7 years ago) ( diff )

--

Команда login

Назначение команды

Выполнение большинства команд API требует аутентификации - наличия в запросе клиента данных, доказывающих, что пользователь, от имени которого запрашивается выполнение команды, действительно является тем, за кого он себя выдает. Таким доказательством является наличие в запросе cookies, переданных сервером в ответе на ранее выполненный запрос.

Но как быть, если клиент собирается сделать запрос первый раз, и никаких cookies у него еще нет? Для такого случая существует команда login. Она выполняется даже в том случае, если в запросе клиента отсутствуют cookies. Команде login передается имя пользователя и пароль. Сервер проверяет, действительно ли в его базе данных есть запись о пользователе с указанным именем, и если да, сервер генерирует cookies с данными аутентификации, которые клиент затем может использовать при отправке последующих запросов.

Ключи запроса

Ключ Тип обязательный Описание
"cmd" строка да "login" - имя команды
"login" строка да имя пользователя
"password" строка да пароль пользователя
login
имя пользователя, запрашивающего аутентификацию.
password
пароль пользователя.

Пример запроса

{"cmd":"login","login":"john","password":"kajd64#M-ls84"}

Возвращаемые данные

В случае успешного выполнения команда login генерирует данные аутентификации и устанавливает cookies. В JSON-объекте ответа никакие дополнительные данные не передаются. Пример ответа в случае успешной аутентификации пользователя:

{"cmd":"login"}

В случае ошибки аутентификации (пользователя с указанным именем не существует или указан неверный пароль) команда login возвращает ключ error2, значением которого является строка "неверное имя или пароль":

{"cmd":"login","error2":"неверное имя или пароль"}

Совместимость

В версиях аппаратуры MC04-DSL-3U до июня 2013 г. (до ревизии sw r860), где использовался внешний сервер HTTP, при передаче команды login для аутентификации в URI запроса вместо api.php требовалось использовать login.php. В современных версиях аппаратуры (начиная с r860) пути /api.php и /login.php равнозначны.

Note: See TracWiki for help on using the wiki.