python - 来自 cookie 的 Python MediaWiki 身份验证

标签 python authentication cookies openid mediawiki

在某些 Python CGI 脚本(在同一域,ofc)中使用 MediaWiki cookie 进行身份验证(尤其是 MW 的 OpenID)的最简单方法是什么?

也可以从 python 访问 MediaWiki 数据库。

最佳答案

将 Cookies 与 mediawiki 一起使用的一种非常简单的方法如下:

from cookielib import CookieJar
import urllib2
import urllib
import json

cj = CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

现在,可以使用 opener 发出请求。例如:

login_data = {
'action': 'login',
'lgname': 'Example',
'lgpassword': 'Foobar',
'format': 'json'
}
data = urllib.urlencode(login_data)
request = opener.open('http://en.wikipedia.org/w/api.php',data)
content = json.load(request)
login_data['token'] = content['login']['token']
data_2 = urllib.urlencode(login_data)
request_2 = opener.open('http://en.wikipedia.org/w/api.php',data_2)
content_2 = json.load(request_2)
print content_2['login']['result']

在上面的示例中,如果未创建 Cookiejar,则登录将无法完全正常工作,需要另一个 token 。不过,建议使用已经创建的 mediawiki 包装器,例如 pywikipedia , mwhair , pytybot , simplemediawikiwikitools , 以及数百个其他 mediawiki 包装器在 python 中。

关于python - 来自 cookie 的 Python MediaWiki 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3642313/

相关文章:

python - UnicodeDecodeError 发生在一个上下文中,但不在另一个上下文中,而上下文本身似乎无关紧要。澄清?

java - 我应该在哪里验证用户是否有权访问资源?

javascript - 使用 Cookie 保存 JQuery 切换状态

python - 如何计算图中定义的 N 个允许移动中路径权重的总和,但目标节点未使用 Python 固定

php - 同时执行多个 Python 脚本导致 PHP/Apache 挂起

SVN subversion 设置和身份验证问题

python - 如何将 Tkinter 与 Python 登录屏幕集成?

php - 如何在 30 分钟后使 PHP session 过期?

asp.net - 停止从域(又名 "cookieless domain")设置 cookie 以提高站点性能

python - 使用 python 脚本实现 Windows 服务器和 Windows 桌面的差异