【发布时间】:2017-04-16 08:46:47
【问题描述】:
随着 MediaWiki 1.27 的更新,对 API 进行了一些身份验证更改(通常与 Wiki 引擎的身份验证更改一起进行)。作为其中的一部分,我似乎在设置为不允许匿名用户阅读的 wiki 中遇到权限错误。
wiki 有 $wgGroupPermissions['*']['read'] = false; 来关闭匿名用户的访问权限。
但是使用由新的Special:BotPasswords 页面创建的机器人似乎有问题。我为现有的admin 用户创建了一个机器人,它授予对新机器人的“基本权限”访问作为基线(“基本权限”包括read 和writeapi)。
使用 API,我可以成功获取登录令牌并登录(返回 cookie 以设置会话),但随后使用该会话 cookie 尝试执行页面查询(例如,列出 allpages)结果在 readapidenied 错误中(“您需要读取权限才能使用此模块”)。
readapi 是我必须在某处授予的新权限吗?或者,仅提供会话 cookie 不足以将页面列表请求链接到登录请求(如何将授权从 login 呼叫转发到其他呼叫?)?或者这只是新 Bot 用户基础架构中的一个错误?
我猜我的错误在于将会话信息传递给列表查询,因为如果我暂时将$wgGroupPermissions['*']['read'] 放回true,并使用assert=user 查询选项,它会返回一个@ 987654333@错误,提示用户未登录。
【问题讨论】:
标签: php mediawiki bots mediawiki-api