多个OAuth提供商(Facebook、Google、Windows Live)的单一帐户?

多个OAuth提供商(Facebook、Google、Windows Live)的单一帐户?,facebook,authentication,oauth,Facebook,Authentication,Oauth,我有一个web应用程序,可以通过Facebook、Google和Windows Live进行注册和身份验证。每个OAuth请求都具有从身份验证提供程序检索关联电子邮件地址所需的作用域 目前的情况是根据提供商和提供的标识符创建帐户。这意味着,如果用户已登录多个提供商,则该用户将在web应用程序上拥有多个帐户 我想拥有一个单一账户的理想情况,即使在使用多个提供者时也是如此。我正在考虑使用电子邮件地址来查看是否存在该用户的帐户。如果存在,请根据电子邮件地址使用该帐户 这有多安全/可靠?提到的所有OAu

我有一个web应用程序,可以通过Facebook、Google和Windows Live进行注册和身份验证。每个OAuth请求都具有从身份验证提供程序检索关联电子邮件地址所需的作用域

目前的情况是根据提供商和提供的标识符创建帐户。这意味着,如果用户已登录多个提供商,则该用户将在web应用程序上拥有多个帐户

我想拥有一个单一账户的理想情况,即使在使用多个提供者时也是如此。我正在考虑使用电子邮件地址来查看是否存在该用户的帐户。如果存在,请根据电子邮件地址使用该帐户

这有多安全/可靠?提到的所有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.