Oauth 多重身份+;单点登录安全

Oauth 多重身份+;单点登录安全,oauth,single-sign-on,Oauth,Single Sign On,这是一个理论问题 假设我有一个Twitter、Facebook、G+、Instagram账户,所有账户的电子邮件地址都是bill@example.com现在我想设计一个web应用程序,允许用户使用他们的Twitter、Facebook、G+、Instagram帐户或标准注册表登录到该应用程序 我的用户的唯一标识符是他们的电子邮件地址。 现在,假设我已经有一个帐户注册了电子邮件bill@example.com我应该如何设计机制来链接我的Twitter、Facebook、G+、Instagram帐户

这是一个理论问题

假设我有一个Twitter、Facebook、G+、Instagram账户,所有账户的电子邮件地址都是
bill@example.com
现在我想设计一个web应用程序,允许用户使用他们的Twitter、Facebook、G+、Instagram帐户或标准注册表登录到该应用程序

我的用户的唯一标识符是他们的电子邮件地址。

现在,假设我已经有一个帐户注册了电子邮件
bill@example.com
我应该如何设计机制来链接我的Twitter、Facebook、G+、Instagram帐户

方法1

请用户先登录,然后连接到其他帐户

赞成者:

  • 稳妥
缺点:

  • 可能会很痛苦,如果用户忘记了用户名和密码怎么办
方法2

假设第三方oauth提供商确认了电子邮件,只需将第三方帐户与现有帐户(在我的应用程序中)关联,并使用第三方提供的现有电子邮件即可

赞成者:

  • 简单,简单
缺点:

  • 保安
问题

如何确保
bill@example.com来自Facebook的
是相同的
bill@example.com
来自G+?
或者没有简单的/用户友好的方法来做到这一点?

你不能假设他们用来创建你的帐户的电子邮件与他们用来创建twitter或facebook帐户的电子邮件相同。此外,twitter不会返回与用户帐户关联的电子邮件地址。解决方案1实际上是您唯一的选择。

您不能假设他们用于创建您的帐户的电子邮件与用于创建twitter或facebook帐户的电子邮件相同。此外,twitter不会返回与用户帐户关联的电子邮件地址。解决方案1实际上是您唯一的选择