哪个openid/oauth库将Django项目连接到googleapps帐户?

2024-06-11 15:47:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为一家使用Google应用程序登录的公司开发一个intranet django项目(不使用GAE)。所以我希望我的用户能够登录到我的django项目使用他们的谷歌帐户登录。OpenID似乎很合适,尽管Oauth可能也能工作?在

我看到有很多类似名称的库将django的auth系统连接到外部登录系统:

下面是我想做的集成:让用户使用他们的google帐户登录,而不是本地的django系统。保持django的权限模型用于管理系统。所以我认为这意味着,当一个新帐户登录之前,我们第一次在django中自动创建一个新的用户记录。在

有使用这些项目经验的人能告诉我哪个项目最有效吗?或者,如果你试过的话,只建议哪些是最活跃/最有效的?谢谢!在


Tags: 项目django用户orgcomauthhttpbitbucket
3条回答

我知道这是一个迟来的答案,但我正在做类似的事情,我刚刚发现{a1}。它基本上实现了OAuth、OpenID、Facebook Connect等,与其他一些选项不同,它似乎正在被许多项目积极开发和使用。在

我终于成功了,所以我将回答我自己的问题,因为前面的答案很有帮助,但不要讲整个故事。在

django-openid-auth实际上非常容易设置和使用。自述文件非常清晰。如果你只想使用标准的谷歌账户(即@gmail.com网站地址),然后在设置.py有:

OPENID_SSO_SERVER_URL = 'https://www.google.com/accounts/o8/id'

但是如果你想使用一个“googleapps”账户,比如在你自己公司的域名上托管gmail,那就更复杂了。我从this question获得了我的详细信息。若要使用你的google apps帐户,请配置设置.py收件人:

^{pr2}$

在将来,这可能会管用,但今天可能不行,问题在于django openid auth所依赖的python openid。python openid的标准构建无法理解google正在使用的一些协议扩展。(为什么谷歌需要扩展协议?翻阅http://groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains并报告。祝您好运。)因此您需要使用adieu对python openid的补丁,该补丁可从以下站点获得: http://github.com/adieu/python-openid

在现有的python openid上安装这个。现在它应该可以工作了。在

小心使用OPENID_USE_AS_ADMIN_LOGIN设置,因为它要求您拥有一个openid用户帐户,即“staff”或“superuser”才能使用admin,这在默认情况下不会发生。因此,您需要执行两个步骤来启用openid,使用openid登录以在django中创建一个帐户,然后使用旧管理员帐户将自己的openid帐户标记为超级用户,然后禁用非openid管理员访问。在

还有一件事:您的域管理员可能需要为您的域启用openid登录,然后才能正常工作。控件位于http://www.google.com/a/cpanel/example.com/SetupIdp

我用过django-openid-auth。工作正常,可以在第一次签名时创建用户帐户。您还可以在django管理面板中将openid登录与用户帐户相关联。在

相关问题 更多 >