Django中最好的OpenID解决方案是什么?
请注意:这是一个很久以前的问题,答案也比较老旧。现在大多数链接的应用程序都不再维护了。如今,大多数人似乎使用 django-allauth 或 python-social-auth。我会把原来的问题保留在下面,以便后人参考。
至少有六个Django应用程序可以为Django提供OpenID认证:
- django-openid
- django-openid-auth
- 另一个django-openid-auth,看起来已经停止维护
- django-authopenid
- django-socialauth(也支持用Twitter和Facebook账号登录)
- django-socialregistration(也有Facebook和Twitter的认证)
- django-openid-consumer,是Simon Willison原版django-openid的一个分支。似乎更适合简单的博客评论,而不是完整的注册流程
- django-social-auth
我试过其中几个。Simon Willison的django-openid给我留下了不错的印象,但因为他在Django界引领潮流,有时候我很难理解他的趋势(比如django-openid中的动态URL模式系统)。更糟糕的是,我无法让Google的登录功能正常工作。
django-authopenid给我留下了好印象,似乎与django-registration的集成也不错。django-socialauth和django-socialregistration支持Twitter和Facebook,这绝对是个优点。谁知道Facebook什么时候会成为OpenID提供者呢?不过,socialauth似乎也有一些问题。
那么,哪个OpenID应用程序是最好的呢?请分享你们的正面(和负面)经验。谢谢!
6 个回答
我比较喜欢使用django-authopenid,不过我觉得现在大部分成熟的解决方案差不多。尽管如此,我还是看到这个用得最多。我对它的使用做了一些小改动,但并没有去修改它的原始代码,这对我来说是个很大的优点。换句话说,它很容易进行自定义。
这个帖子最后的回复是在二月份,已经快8个月了,我相信很多事情都发生了变化。
我对Django-Socialauth非常感兴趣,因为它支持gmail、yahoo、facebook、twitter和OpenID。
我找到两个看起来比较新的分支:
https://github.com/uswaretech/Django-Socialauth
https://github.com/agiliq/Django-Socialauth
第二个分支最近有更新。
我想知道有没有人最近使用过这些分支?我在寻找一个最可靠的版本来用在我的网站上。
谢谢!
更新:目前最新的分支似乎是 omab/django-social-auth,这也是 pypi包所指向的。
对我来说,效果最好、更新最及时的就是在launchpad上的那个。
它和我已经在用的django.auth模块完美结合,毫无缝隙。
https://launchpad.net/django-openid-auth
要获取一份副本,可以运行:
bzr branch lp:django-openid-auth
或者通过PyPI安装它。
pip install django-openid-auth