Changes between Initial Version and Version 1 of ApiLogin


Ignore:
Timestamp:
Aug 12, 2017, 10:21:30 PM (7 years ago)
Author:
alx
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ApiLogin

    v1 v1  
     1=  Команда login  =
     2
     3== Назначение команды ==
     4
     5Выполнение большинства команд API требует аутентификации - наличия в запросе клиента данных, доказывающих, что пользователь, от имени которого запрашивается выполнение команды, действительно является тем, за кого он себя выдает. Таким доказательством является наличие в запросе cookies, переданных сервером в ответе на ранее выполненный запрос.
     6
     7Но как быть, если клиент собирается сделать запрос первый раз, и никаких cookies у него еще нет? Для такого случая существует команда `login`. Она выполняется даже в том случае, если в запросе клиента отсутствуют cookies. Команде `login` передается имя пользователя и пароль. Сервер проверяет, действительно ли в его базе данных есть запись о пользователе с указанным именем, и если да, сервер генерирует cookies с данными аутентификации, которые клиент затем может использовать при отправке последующих запросов.
     8
     9== Ключи запроса ==
     10
     11||  '''Ключ'''  ||  '''Тип'''  ||  '''обязательный'''  ||  '''Описание'''  ||
     12|| "cmd" || строка ||  да  || "login" - имя команды ||
     13|| "login" || строка ||  да  || имя пользователя ||
     14|| "password" || строка ||  да  || пароль пользователя ||
     15
     16 login:: имя пользователя, запрашивающего аутентификацию.
     17
     18 password:: пароль пользователя.
     19
     20=== Пример запроса ===
     21
     22 `{"cmd":"login","login":"john","password":"kajd64#M-ls84"}`
     23
     24== Возвращаемые данные ==
     25
     26В случае успешного выполнения команда `login` генерирует данные аутентификации и устанавливает cookies. В JSON-объекте ответа никакие дополнительные данные не передаются. Пример ответа в случае успешной аутентификации пользователя:
     27
     28 `{"cmd":"login"}`
     29
     30В случае ошибки аутентификации (пользователя с указанным именем не существует или указан неверный пароль) команда `login` возвращает ключ `error2`, значением которого является строка "неверное имя или пароль":
     31
     32 `{"cmd":"login","error2":"неверное имя или пароль"}`
     33
     34== Совместимость ==
     35
     36В версиях аппаратуры MC04-DSL-3U до июня 2013 г. (до ревизии sw r860), где использовался внешний сервер HTTP, при передаче команды `login` для аутентификации в URI запроса вместо `api.php` требовалось использовать `login.php`. В современных версиях аппаратуры (начиная с r860) пути `/api.php` и `/login.php` равнозначны.