2013-03-02 84 views
9

我有一個Web應用程序,允許註冊和認證通過的Facebook谷歌的Windows Live。每個OAuth請求都具有從身份驗證提供程序檢索關聯電子郵件地址所需的範圍。多個OAuth提供者(Facebook,Google,Windows Live)的單一賬戶?

當前情況是基於提供者和提供的標識符創建賬戶。這意味着如果用戶有登錄與多個提供商用戶將在Web應用程序上有多個帳戶

我想有使用多個供應商當具有單acccount連的理想的情況。我正在考慮使用電子郵件地址來查看用戶是否存在帳戶。如果存在,請使用基於電子郵件地址的帳戶。

這樣安全嗎?所有提到的OAuth提供商是否驗證電子郵件地址?更好的方法? :

編輯:經過測試,想出了這個。仍在尋求進一步的建議:)

FaceBook: Cannot authenticate with unvalidated e-mail. Additional e-mail will not appear until validated. 
Google: Provides `verified_email`. Additional e-mail will not appear until validated. 
Windows Live: Cannot authenticate with unvalidated e-mail. Additional e-mail will not appear until validated. 

回答

4

有趣的問題。您可以嘗試使用電子郵件來檢查用戶是否存在,但問題是,用戶可能會爲不同的提供商使用不同的電子郵件地址。

我的建議是詢問用戶(一旦他/她使用其中一種方法登錄到您的應用程序中),將其他提供者附加到此帳戶,以便他/她也可以使用它們登錄到您的應用程序。

它不能完全解決您的問題(我不確定解決方案是否存在),但用戶將擁有更多的控制權,並且您將減少每個用戶的帳戶數量。