我正在开发一个与谷歌应用程序集成的 django 应用程序。我想让用户使用他们的谷歌应用账户(谷歌托管域中的账户,而不是谷歌账户)登录,这样他们就可以访问他们的文档、日历等。
为了做到这一点,我下载并开始使用 django_openid_auth(因此,python-openid)。
首先,为了测试它,我在设置中使用了这个 url:
OPENID_SSO_SERVER_URL = 'https://www.google.com/accounts/o8/id'
有了这个,我设法将用户重定向到谷歌帐户页面登录,然后返回我自己的域,谷歌人员描述的身份验证周期成功完成。但是,登录谷歌帐户对我来说没什么用,因为我希望在其托管域中拥有谷歌应用程序帐户的用户 - 但不是谷歌帐户 - 来登录。为此,我阅读了关于发现的谷歌文章“Discovering OpenID Endpoints for Hosted Domains”,并将上述设置更改为:
OPENID_SSO_SERVER_URL = 'https://www.google.com/accounts/o8/site-xrds?hd=<my-domain>.com'
- 显然,<my-domain>
我的实际域名在哪里;)
但后端回复了以下消息:
OpenID 身份验证失败:来自身份 URL 主机的 HTTP 响应状态不是 200。得到状态 404
稍微调试一下,我发现python-openid(版本2.2.4)中的代码是误解了谷歌响应的代码,但我在这里很茫然。
我已经在 socialwok.com 和 puffypoodles.com 看到我自己的域中的身份验证所以我很确定我的谷歌应用域的身份验证周期有效,但不知何故 python-openid 似乎无法完成它(虽然,我重申,它适用于普通的旧谷歌账户)。
我应该尝试修复 python-openid,还是有其他方法可以解决这个问题?有没有人成功地在纯 django 应用程序(而不是谷歌应用程序引擎)中使用谷歌应用程序登录?