2011-12-03 52 views
0

我有一個爲組織構建的django應用程序。但是,所有用戶在組織的Google應用中都有帳戶。我們一直爲他們保留兩個單獨的用戶帳戶(谷歌應用程序和django應用程序),這不是很整潔。他們的django用戶名與他們的谷歌應用用戶名(@domain.com之前的部分)相同。Google Apps OpenID登錄Django App

我想簡單地更改我的django應用程序的登錄頁面,以便重定向到Google應用程序進行身份驗證(即,openid類型登錄)。此外,當他們登錄時,我希望它以相同的用戶名返回用戶,以便現有用戶登錄到他們原來的帳戶(因爲他們有保存在這些帳戶下的東西)。新用戶只需要用該用戶名創建一個新的django帳戶。不知道是否有人熟悉googleappsauth。它是一個允許openid登錄到谷歌應用程序域的django模塊。這對我來說似乎很完美。但是,它告訴我我需要定義一個openid端點。文檔似乎並沒有表明這是必需的,但我不是很熟悉OpenID,所以我有點卡住了?

回答

0

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

0

要獲得谷歌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。修補程序are available