You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js中登录MediaWiki(维基百科)API

维基百科API ClientLogin 问题排查

我来帮你梳理下当前登录请求里的问题,大概率是参数传递方式和格式不对导致的:

核心问题点

  • 参数重复传递:你同时在URL参数和POST body里都传了lgtoken,这会造成参数冲突,API可能无法正确解析。应该统一把参数放在POST body里(因为用了JSON格式),URL只保留action=clientlogin和format=json即可。
  • Content-Type 头缺失:既然POST body用的是JSON格式,必须在请求头里设置Content-Type: application/json,否则API会把body当成普通表单数据解析,自然会出错。

正确的请求示例

给你一个标准的clientlogin请求模板,你可以对照调整:

POST https://en.wikipedia.org/w/api.php?action=clientlogin&format=json
Content-Type: application/json
User-Agent: 你的应用名称/版本 (联系方式,比如邮箱)

{
  "lgname": "你的维基用户名",
  "lgpassword": "你的维基密码",
  "lgtoken": "你第一步获取到的logintoken字符串",
  "lgdomain": ""
}

额外注意事项

  • User-Agent 必须设置:维基百科API对User-Agent有严格要求,不能留空或用默认值(比如curl/7.xx),否则会被限流甚至拒绝请求。建议设置成能标识你应用的名称+联系方式,方便维基团队排查问题。
  • 两步验证账号处理:如果你的账号开启了两步验证,第一次请求会返回needs2fa的状态,这时候你需要调用action=query&meta=tokens&type=login获取lg2fa_token,然后在第二次clientlogin请求里额外添加lg2fa_token参数。
  • token的时效性:logintoken的有效期很短,一般几分钟内有效,确保你获取token后尽快发起登录请求,避免token过期。

内容的提问来源于stack exchange,提问作者loretoparisi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:18:20