如何登录每个MediaWiki API请求?

时间:2013-10-03 04:59:39

标签: php curl mediawiki mediawiki-api

我已经锁定了我的MediaWiki实例,因此只有注册用户才能读取或写入它(它是“私有的”)。这意味着需要对任何API请求进行身份验证。据我所知,唯一的方法是使用凭据“登录”,在服务器上设置cookie,然后使用您登录后获得的特殊令牌发出新请求。

相反,我想发送我的凭据以登录每个请求,所以不必担心设置cookie或令牌。这意味着我只需要发出一个请求,而不是几个,但每个请求都会“登录”。

例如:

http://mywiki.com/api.php?action=query&dowhatever&username=MyName&password=MyPassword

或发送特殊的HTTP标头。

可以吗?有人做过扩展以允许这个吗?

2 个答案:

答案 0 :(得分:0)

没有办法做到这一点。但是,您只需要登录一次即可获得会话的cookie。您需要确保在将来的API请求中将此cookie传回。有关详细信息,请参阅https://www.mediawiki.org/wiki/Api

答案 1 :(得分:0)

默认情况下似乎不可能。你需要使用/写一个扩展名。

我编写了自己的API脚本,绕过了所有默认的MediaWiki代码(包括好的和坏的安全性)。它需要工作,它有明显的安全漏洞,但它是一个开始。我不推荐它用于制作网站。 Here it is