多个OAuth提供者(Facebook,Google,Windows Live)的单一账户?

问题描述:

我有一个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. 

有趣的问题。您可以尝试使用电子邮件来检查用户是否存在,但问题是,用户可能会为不同的提供商使用不同的电子邮件地址。

我的建议是询问用户(一旦他/她使用其中一种方法登录到您的应用程序中),将其他提供者附加到此帐户,以便他/她也可以使用它们登录到您的应用程序。

它不能完全解决您的问题(我不确定解决方案是否存在),但用户将拥有更多的控制权,并且您将减少每个用户的帐户数量。