API:Login/ru

MediaWiki API может потребовать от вашего приложения или клиента предоставить аутентифицированные учетные данные пользователя и войти в систему для (а) запроса информации или действий по изменению данных (б) для выполнения больших запросов с более высоким запросом на лимит.

Два метода аутентификации
Существует два способа аутентификации в MediaWiki Action API:

Способ 1. Войти
Боты и прочие неинтерактивные приложения, когда это возможно, должны использовать owner-only OAuth consumers для аутентификации, как более безопасный метод. Если этот метод недоступен, или его реализация в этом клиенте невозможна, действие  может быть использовано и с паролями для ботов.

POST-запрос
Note: lgtoken in the request above is retrieved from API:Tokens

Sample code
login.py

Note: As of MediaWiki v1.27, using the main account for login is not supported. Obtain credentials via Special:BotPasswords or use  method. Logging in and remaining logged in requires correct HTTP cookie handling by your client on all requests. In the above example, we are showing how a session object helps persist cookies.

Method 2. clientlogin
Interactive applications such as custom editors or patrolling applications that provide a service without intending to fully replace the website or mobile apps that aim to completely replace access to the web-based user interface should use the  action. However, one should prefer using OAuth if it is available for authenticating the tool, as it is easier and more secure. This module is available since MediaWiki

POST Request
Obtain token login in the request above via API:Tokens.

Example 2: Process for a wiki with special authentication extensions
A wiki with special authentication extensions such as ConfirmEdit (captchas), OpenID, OATHAuth (two factor authentication), may have a more complicated authentication process. Specific fields might also be required in that case, the description of which could be fetched from the API:Authmanagerinfo query.

Step 1: Answer the Captcha and select OpenID authentication
Note: От клиента будет ожидаться перенаправление браузера пользователя на предоставленную цель. Провайдер OpenID произведёт аутентификацию и перенаправит на расположенную на вики страницу Special:OpenIDConnectReturn, которая произведёт валидацию ответа OpenID и перенаправит на адрес loginreturnurl, указанный в первом POST-запросе к API, и к этому адресу будут добавлены параметры  и. В этот момент клиент снова получает контроль над процессом и выполняет следующий запрос к API.

Step 2: Back from OpenID
Note: Теперь клиенту нужно сначала попросить пользователя найти текущий код в своём приложении для двухфакторной аутентификации, а затем отправить введённый код на сервер, чтобы продолжить процесс аутентификации.

Step 3: Two-factor authentication
Обратите внимание: В некоторых случаях возможно получить ответ, например если в расширении OpenID Connect у этой учётной записи OpenID не было привязки ни к какому локальному пользователю. В этом случае клиент может или начать сначала весь процесс входа в учётную запись, или переключиться в режим создания учётной записи; и в том, и в другом случае клиенту нужно передавать параметр loginpreservestate или createpreservestate для частичного сохранения состояния.

Дополнительные примечания

 * На вики, разрешающих анонимное редактирование, возможно редактировать через API без входа в учётную запись, но это действие всё равно крайне рекомендуется выполнять. На приватных вики, вход необходим для использования любых API функций.
 * It is recommended to create a separate user account for your application. This is especially important if your application is carrying out automated editing or invoking large or performance-intensive queries. With that, it is easy to track changes made by the application and apply special rights to the application's account.

См. также

 * - Возвращает информацию о текущем вошедшем в систему пользователе.