2011-09-26 175 views
2

我已經爲我正在開發的應用程序提供了Oauth支持。我試圖通過的是關聯Oauth帳戶的邏輯。驗證通過Oauth驗證的用戶

例子:

比方說,用戶已在登錄之前。他們使用Facebook進行身份驗證。我現在有一個電子郵件地址,我可以放心地認爲這個地址對於那個用戶來說永遠是唯一的然而,Twitter不會通過其Oauth實施提供電子郵件地址,因此如果有人使用Twitter和Facebook登錄,我該如何正確關聯他們的帳戶?我無法使用用戶名或處理程序,因爲顯然這可能因供應商而異。有沒有其他辦法可以做到這一點?

我是否需要用戶輸入他們的電子郵件地址,如果他們使用Oauth供應商而忽略它?我試圖把最好的用戶體驗和最穩定的系統放在一起 - 所以我們非常感謝您的幫助。

+0

這已經被討論過......但沒有解決:http://stackoverflow.com/questions/3191044/social-network-facebook-twitter-etc-user-account-integration-duplicate-scena –

回答

0

如果您正在考慮與多個身份提供商合作,那麼您的最佳解決方案是使用系統唯一的內部ID,然後在外部身份驗證發生時將外部帳戶與該ID相關聯。此外,FB中的用戶可以更改他們的主要電子郵件地址,因此假定它是唯一的可能是安全的,假設它是最新的可能並不安全。