在WSGI中使用Python 3实现OpenID
我之前从来没有做过用户认证的事情,但我想通过openID来跟踪和认证用户。我看到有几个模块可以在WSGI中实现openID认证,但都是老旧的,而且没有提到支持python3,所以我猜它们可能不太好用。
我希望能得到一些建议,关于如何在WSGI和python3中处理和认证openID。如果能有一个简单的实现示例,那就太好了。
1 个回答
3
首先,关于这个回答有两个需要注意的地方:
如果你对自己的框架、urllib及其相关库很熟悉,实施这个过程还是需要花一些时间的。并不是那么简单。
openid2rp的代码看起来并不是特别完善。
尽管如此,最新版本的 openid2rp 可以通过 2to3 转换为可以在Python 3中使用。你需要修复一些小问题。
里面的示例代码不能直接使用,但你可以把它当作模板来写你的应用程序。如果你在处理字节和字符串时小心一点,应该不会花费你两年时间就能搞定一个可用的OpenID登录。(:
我已经通过这种方式把它转成了 cherrypy。虽然这不是你想要的,但可能会对你有帮助: http://paste.ubuntu.com/699338/
举个例子,运行2to3后,这种代码仍然会存在:
- mac_key = base64.decodestring(session['mac_key'])
+ mac_key = base64.b64decode(session['mac_key'].encode())
在你写实际的登录代码时,你会看到这些问题。
这是我的 __init__.py
文件。注意我还没有用到的方法仍然有bug! http://paste.ubuntu.com/699354/