谷歌Apps的OpenID登录的Django应用程序

我有一个组织建立了一个Django应用程序。 但是,所有用户在组织中的谷歌应用程序帐户。 我们一直保持对他们两个单独的用户帐户(谷歌应用程序和Django应用程序),这是不是很整齐。 他们的Django的用户名与他们的谷歌应用程序的用户名(之前的部分@domain.com )。

我想简单地改变我的Django应用程序的登录页面,以便重定向到谷歌的认证(即OpenID的登录类型)的应用程序。 此外,当他们登录我想它使用相同的用户名返回用户,这样一来现有的用户登录到其原来的帐户(因为他们有这些帐户下保存的东西)。 和新用户就只能使用该用户名创建了一个新的Django帐户。

不知道是否有人熟悉googleappsauth。 它Django的模块,让OpenID登录到一个谷歌Apps网域。 这似乎是适合我。 但是,它告诉我,我需要定义一个OpenID端点。 文档似乎并没有表明是必需的,但我不是很熟悉的OpenID所以我有点卡住?

--------------解决方案-------------

GOOGLE_OPENID_ENDPOINT = 'https://www.google.com/accounts/o8/ud'

要获得谷歌OpenID端点,通过发送或者GET或HEAD HTTP请求执行发现https://www.google.com/accounts/o8/id.当使用GET,我们建议将接受头application/xrds+xml 。 谷歌返回一个包含OpenID提供商端点URL.The端点地址被注释为一个XRDS文档:

<Service priority="0">
<Type>http://specs.openid.net/auth/2.0/server</Type>
<URI>{Google's login endpoint URI}</URI>
</Service>

来自:code.google.com

你也可以使用:

https://google.com/accounts/o8/site-xrds?hd=<domain>

但是,如果你使用的python-openid的注意,这会导致一些问题。 补丁是可用的。

分类:Django的 时间:2015-03-15 人气:6
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.620 (s). 10 q(s)