使用Django的最佳OpenID解决方案是什么?

257

请注意:这是一个古老的问题,有古老的答案。大多数相关的应用程序现在已经不再维护。如今,大多数人似乎使用django-allauthpython-social-auth。为了记录历史,我将保留原始问题。


至少有六个Django应用程序可提供Django的OpenID身份验证:

我玩了几个应用。Simon Willison的django-openid给我留下了很好的印象,但由于他在Djangoland引领潮流,有时我很难理解他的趋势(例如django-openid中的整个动态urlpatterns系统)。此外,我无法使Google登录起作用。 django-authopenid给我留下了很好的印象,并且它似乎与django-registration有良好的集成。 django-socialauthdjango-socialregistration支持Twitter和Facebook,这绝对是一个优点。谁知道Facebook何时会成为OpenID提供者呢?虽然socialauth似乎也有一些问题
那么,哪个是最好的OpenID应用程序?请分享任何积极(和消极)的经验。谢谢!

8
Matías Aguirre开发的django-social-auth是另一个很活跃的项目,支持除OpenId外的所有主要提供商(FB、Twitter、LinkedIn等),支持用户数据填充和将多个社交账号关联到单个用户。 - Peterino
1
注意:django-social-auth已更名为python-social-auth - Nathan Osman
6个回答

87

在我看来最行之有效且似乎最为更新的方法是在launchpad上找到的。

它可以与已经使用django.auth模块的我的应用程序无缝集成。

https://launchpad.net/django-openid-auth

获取该软件的副本,请运行:

bzr branch lp:django-openid-auth

或者通过PyPI安装它

pip install django-openid-auth

1
谢谢!有没有使用手册?我在Launchpad上没找到。 - Silver Light
2
代码库http://bazaar.launchpad.net/~django-openid-auth/django-openid-auth/trunk/files中有一些示例,以及Readme.txt中的安装指南。 - Daniel
2
它在 PyPI 上 -> pip 安装 django-openid-auth - kioopi
2
很遗憾,它与Django 1.5不兼容 - 渲染模板时会出现错误。 - Elliott
我也需要执行 pip install python-openid - mgalgs
显示剩余3条评论

32

这个帖子的最后一篇文章是在二月份发布的。已经过去了将近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软件包 指向的地址。


2
我已经使用 pip install django-social-auth 成功运行了它,这个库与这个分支很匹配:https://github.com/omab/django-social-auth。作为一个新手,最困惑的是如何将我的登录/错误模板与 socialauth 的 URL 和视图对齐。我提到的分支中的示例站点帮了我很多。 - Aidan Ryan
1
django-social-auth 不等于 Django-Socialauth,事实上,前者是在与 Django-Socialauth 的无数次挣扎后创建的。 - omab
1
有一个更新的分支在 https://github.com/omab/django-social-auth 上。 - Wernight
2
django-social-auth现已弃用,推荐使用omab/python-social-auth - mgalgs

12

我更喜欢django-authopenid,但我认为大多数成熟的解决方案在这一点上都差不多。尽管如此,这是我看到使用最多的。我已经对我们如何使用它进行了一些自定义,而无需实际分叉它,这是我眼中的巨大加分项。换句话说,它相当易于挂钩。


8

别忘了Elf Sternberg的Django-Socialauth分支 - 他正在努力清理原始socialauth应用程序中的许多糟糕的实现决策。目前看起来很干净,但不清楚他的项目是否会有动力。


5

django-socialauth对我非常有用


1
你可以尝试使用pinax

4
这不会有点过了吗?虽然如果他只需要openid,他可以看一下Pinax选择的是哪一个。 - Agos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接