Version 2 (modified by 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
не требуется наличия каких-либо прав.
Возвращаемые данные
В случае успешного выполнения команда 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
равнозначны.