在WSGI中使用Python 3实现OpenID

10 投票
1 回答
552 浏览
提问于 2025-04-16 15:42

我之前从来没有做过用户认证的事情,但我想通过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/

撰写回答