2010-01-21 63 views
3

任何人都可以解釋我使用這裏提到的openid庫的步驟。 我在我的程序中導入了janrain openid的所有包,但我無法理解實際的代碼流。Python OpenID庫使用

過程中應基本遵循這個計劃:

網站上的某個位置添加OpenID登錄場。當在該字段中輸入OpenID並提交表單時,它應該向包含該OpenID URL的您的站點發出請求。

首先,應用程序應通過會話爲每個用戶狀態實例化一個消費者,併爲共享狀態存儲。使用選擇的商店。

接下來,應用程序應該在Consumer實例上調用'begin'方法。此方法採用OpenID URL。 begin方法返回一個AuthRequest對象。

接下來,應用程序應在AuthRequest對象上調用redirectURL方法。參數return_to是OpenID服務器在嘗試驗證其身份後將用戶發回的URL。領域參數是URL(或URL模式),用於在用戶授權時向用戶標識您的網站。將重定向發送到用戶瀏覽器的結果URL。

這是驗證過程的前半部分。該過程的後半部分是在用戶的OpenID提供程序將用戶的瀏覽器重定向回您的站點以完成其登錄後完成的。

發生這種情況時,用戶將通過作爲上述redirectURL調用的return_to URL給出的URL與您的站點聯繫。該請求將有幾個查詢參數被OpenID提供者添加到URL中,作爲完成請求所需的信息。

使用相同的會話獲取消費者實例,並像以前一樣存儲並調用其完整方法,傳入所有收到的查詢參數。

該方法可能有多種可能的返回類型。這些表明登錄是否成功,幷包括適合其類型的任何其他信息。

+6

嗯,流量已經很好地描述在你的問題中:)哪些步驟令人困惑?你使用什麼Web框架? – 2010-01-21 14:24:31

+1

我正在使用python_openid2.4庫,並且希望爲我的網站製作一個openid插件,這次只支持用戶名和密碼。我只想使用該庫並導入到我的程序中。我怎樣才能做到這一點。你能解釋一下嗎? – 2010-01-22 11:29:27

回答

0

web.py包括一個webopenid module,它實現了一個完整的,如果基本的,使用Janrain的OpenID認證系統。使用包含的host類,可以將OpenID支持的認證添加到您的項目中。實際上,pull來自OpenID提供商的有趣數據,但是,您需要添加AX和SReg請求/響應處理。