API:Login/zh

MediaWiki API可能会要求您的应用程序或客户端提供经过身份验证的用户凭据并登录（a）查询信息或进行数据修改操作（b）进行比请求限制较大的查询.



两种身份验证方法
有两种方法可以对MediaWiki Action API进行身份验证：



方法1.登录
机器人和其他非交互式应用程序应使用仅所有者的OAuth使用者，因为它更安全. 如果不可用或不适用于客户端，则 操作可与机器人密码一起使用.



示例


回应


示例代码


可能的错误


方法2. 客户端登录
交互应用程序，例如在完全替换对基于网页的用户界面的取数而无意完全替换网站或应用程序的自定义编辑器或巡逻应用程序应使用 操作. 但是，如果可以使用来对工具进行身份验证，则应该使用，因为它更简单，更安全. 该模块在MediaWiki 1.27版本开始可用.



API文档


示例1：没有特殊身份验证扩展的维基的过程


POST请求
通过在上述请求中获得令牌登录.

回应


示例代码


示例2：具有特殊身份验证扩展的维基的过程
具有特殊身份验证扩展, 例如（验证码），，（两步验证）的维基可能具有更复杂的身份验证过程. 如果在这种情况下还需要特定的字段，其描述可以从查询中获取.



步骤1：回答验证码并选择OpenID身份验证


步骤2：从OpenID返回


步骤3：两步验证
注：在某些情况下，可能会收到 响应，例如，如果OpenID Connect扩展名没有将OpenID帐户映射到任何本地用户的信息. 在这种情况下，客户端可能会重启登录过程，或者切换到帐户创建，在两种情况下都传递 loginpreservestate 或 createpreservestate 参数以保留某些状态.



附加提醒

 * 在允许匿名编辑的wiki上，不登录就可以编辑；但我们强烈推荐您先登录. 在非开放wiki上，使用任何API功能都需要登录.
 * 建议为您的应用程序创建一个单独的用户帐户. 如果您的应用程序正在执行自动编辑或调用大型或性能密集型查询，则这一点尤其重要. 这样，就可以轻松跟踪应用程序所做的更改并将特殊权限给于应用程序的帐户.
 * 如果发送的请求应由登录用户发出，请在发送的请求中添加 参数，以检查用户是否已登录. 如果用户未登录，将返回 错误代码.
 * 要检查帐户是否具有机器人权限，请在请求中添加 参数. 如果该帐户没有机器人权限，则将返回 错误代码.

<span id="See_also">

參見

 * - 返回有关当前登录用户的信息
 * Interactive login with action=clientlogin in mwapi
 * Interactive login with action=clientlogin in mwapi