根據這一政黨成員:實施的OpenID
http://www.plaxo.com/api/openid_recipe
步驟之一是:
需要查找的OpenID的 是否進入已經屬於現有 用戶在您的網站
我的問題:
什麼是OpenID喜歡爲gmail帳戶(我還沒有其他OP帳戶呢)?在我看來,OpenID = https://www.google.com/accounts/o8/id
gmail,但我怎麼用它來查找,因爲它是所有用戶都一樣?
根據這一政黨成員:實施的OpenID
http://www.plaxo.com/api/openid_recipe
步驟之一是:
需要查找的OpenID的 是否進入已經屬於現有 用戶在您的網站
我的問題:
什麼是OpenID喜歡爲gmail帳戶(我還沒有其他OP帳戶呢)?在我看來,OpenID = https://www.google.com/accounts/o8/id
gmail,但我怎麼用它來查找,因爲它是所有用戶都一樣?
https://www.google.com/accounts/o8/id
是您用於登錄的內容。成功登錄後,Google的響應將包含openid.claimed_id
變量中的長唯一網址(帶散列);這是你應該存儲在數據庫中的一個,並比較它是否是新用戶或現有用戶。
在像myopenid這樣的其他openid提供程序中,兩者(登錄url和claims_id)都是相同的。
它實際上是https://www.google.com/accounts/o8/id?id=XXXXXXXX
對於一些唯一的字符串XXXXXXXX
在對應於用戶的結尾。
從你的鏈接頁面進一步下跌:
當OpenID提供商重定向到 您的return_to URL,就會增加額外的查詢字符串的 一堆包含驗證所需的 信息 參數 用戶使用此012xxOpenID進行身份驗證。根據您使用的OpenID 庫,您可能需要將這些數據收集到一個數據結構 以傳遞到驗證 函數,或者它可能爲您執行。
其中之一就是那個字符串。從谷歌的OpenID文檔:
甲谷歌提供的標識符,該標識符 具有到用戶的實際 谷歌的帳戶名或密碼 沒有關係,被附加作爲查詢 參數openid.claimed_id。
這是否成立:'xxxxx' ='user @ gmail.com'? – openid 2010-04-28 05:53:25
不。它包含一個與任何特定用戶信息不對應的哈希字符串,唯一的保證是同一個用戶將具有相同的哈希字符串。 – Amber 2010-04-28 05:54:10
此外,您可能希望查看Google自己的文檔:http://code.google.com/apis/accounts/docs/OpenID.html - 相關報價,「Google提供的標識符,與用戶的實際的Google帳戶名稱或密碼作爲查詢參數openid.claimed_id追加。「 – Amber 2010-04-28 05:55:06
這裏的關鍵區別在於,https://www.google.com/accounts/o8/id
不是OpenID標識符,不像本教程的方式。因爲,正如你所指出的,所有用戶都是一樣的。在terminology of the specification中,它是「OP標識符」,它標識供應商(Google),而不是用戶。
這種做法(進入供應商的標識,而不是用戶)並不常見當時一種OpenID的啓用寫你的網站的食譜。使用此流程時,用戶沒有標識符,直到用戶通過id_res
響應從提供商重定向回您的站點。
另外,Google現在可以提供更清晰的標識符URL。如果您設置了Google個人資料,則您的個人資料頁面(http://www.google.com/profiles/myProfileName
)也是一個OpenID。與/accounts/o8/id
標識符不同,此標識符在您使用它的所有站點中都是穩定的,沒有涉及任何時髦的散列字符串。
真正的id(Dav提到的)將在openid響應的'openid.claimed_id'變量中可用。閱讀http://code.google.com/apis/accounts/docs/OpenID.html#Samples瞭解更多信息。 – Amarghosh 2010-04-28 05:57:00
因此,該ID不是用於直接登錄,而是用於檢索信息? – openid 2010-04-28 06:26:05