首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪个openid / oauth库可以将django项目连接到Google帐户?

哪个openid / oauth库可以将django项目连接到Google帐户?
EN

Stack Overflow用户
提问于 2010-06-29 23:14:36
回答 5查看 5.3K关注 0票数 30

我正在为一家使用Google登录的公司开发一个内部网django项目(不使用GAE)。因此,我希望我的用户能够登录我的django项目,使用他们的google帐户登录。OpenID似乎是合适的,尽管也许Oauth也能工作吗?

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

  • django-authopenid - http://bitbucket.org/benoitc/django-authopenid
  • django-openid - http://github.com/simonw/django-openid
  • django-openidauth - http://code.google.com/p/django-openid-auth/
  • django-oauth - http://bitbucket.org/david/django-oauth

下面是我想要做的集成:让用户使用他们的google帐户登录,而不是使用本地django系统。将django的权限模型保留在管理系统等方面。因此,我认为这意味着在django中自动创建一个新的用户记录,这是我们在登录之前还没有看到的新帐户。

任何有使用这些项目经验的人都能告诉我哪一个项目最有效吗?或者,如果你尝试过哪一种方法是最活跃的/最实用的?谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-07-23 23:14:25

我终于成功了,所以我会回答我自己的问题,因为前面的答案很有帮助,但不要说出全部的故事。

django-openid-auth实际上很容易设置和使用。自述文件非常清楚。如果您只想使用标准的google帐户(即@gmail.com地址),那么您可以在settings.py中配置它:

代码语言:javascript
复制
OPENID_SSO_SERVER_URL = 'https://www.google.com/accounts/o8/id'

但是如果你想使用一个“谷歌应用程序”帐户,即在你自己公司的域名上托管gmail,那么它就更复杂了。我从这个问题那里得到了我的详细信息。若要使用谷歌应用程序帐户,请将settings.py配置为:

代码语言:javascript
复制
OPENID_SSO_SERVER_URL = 'https://www.google.com/accounts/o8/site-xrds?hd=example.com'
# replace example.com with your hosted google apps domain

在未来,这可能只是起作用,但今天它可能行不通。问题在于python,django-openid-auth所依赖的。python的标准构建不理解google正在使用的一些协议扩展。(为什么谷歌需要扩展协议?翻查http://groups.google.com/group/google-federated-login-api/web/openid-discovery-for-hosted-domains并向后报告。祝你好运。)因此,您需要使用adieu的补丁到python,它可以在这里获得:http://github.com/adieu/python-openid

在您现有的python上安装它。现在该起作用了。

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

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

票数 17
EN

Stack Overflow用户

发布于 2010-07-01 13:10:44

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

票数 3
EN

Stack Overflow用户

发布于 2010-10-15 08:02:12

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3145453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档