9

我有一个 Web 应用程序,它允许通过FacebookGoogleWindows 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.
4

1 回答 1

4

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

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

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

于 2013-03-02T11:25:18.410 回答