Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将两个OpenID提供程序关联为同一用户_Openid_Rpx - Fatal编程技术网

如何将两个OpenID提供程序关联为同一用户

如何将两个OpenID提供程序关联为同一用户,openid,rpx,Openid,Rpx,我已经在我的网站上实现了OpenID,我很好奇stackoverflow.com等网站是如何得知我的gmail帐户与我的facebook帐户链接的 例如,我第一次来到stackoverflow.com,并使用我的gmail帐户登录。然后我注销,清除浏览器中的cookies并返回stackoverflow.com,但这次我使用facebook而不是gmail登录。不知怎的,stackoverflow.com知道我的facebook帐户链接到了我的gmail,因为我的所有用户设置都是从我第一次登录g

我已经在我的网站上实现了OpenID,我很好奇stackoverflow.com等网站是如何得知我的gmail帐户与我的facebook帐户链接的

例如,我第一次来到stackoverflow.com,并使用我的gmail帐户登录。然后我注销,清除浏览器中的cookies并返回stackoverflow.com,但这次我使用facebook而不是gmail登录。不知怎的,stackoverflow.com知道我的facebook帐户链接到了我的gmail,因为我的所有用户设置都是从我第一次登录gmail时恢复的。显然stackoverflow知道我的gmail和facebook账户都是我

回到我的实现:当我使用gmail或facebook登录我的用户时,我会从RPX收到一条帖子,上面有一些用户信息,比如他们的姓名和电子邮件地址。可以安全地说,如果我有一个用户使用他们的gmail帐户登录我的网站,joe@gmail.com,然后使用他们的facebook登录,他们的facebook帐户也使用joe@gmail.com他们实际上是同一个人

这就是其他人实现相同目标的方式吗?

我想说,假设两个拥有相同电子邮件地址的人是同一个用户是安全的

另一种方法是提供链接站点上两个帐户的功能。我想说的是,我看到过社会认证的实现,如果你使用OpenID或Facebook登录,每个都将是一个单独的实体。在用户尝试使用其他系统登录之前,您可以提示他们连接到他们的Facebook/Twitter/OpenID帐户。一点社会工程可能会帮你解决很多问题。如果他们不连接,然后继续单独登录,您当然会遇到问题。在我看来,TripIt允许你将不同的账户合并为一个账户。您可以提供此功能


只是一些想法。

你的另一个想法是我考虑过的。我想知道如果他们分别使用gmail和facebook登录,然后尝试将一个已经存在的帐户合并到另一个帐户中,会发生什么情况。我想我得弄清楚什么会被覆盖,然后把这两个账户连接起来。你可能会做出一个行政决定,如果事情发生冲突,Facebook的数据将被使用,因为它是“更新”或其他什么。否则,您可以像git在合并过程中发生冲突时所做的那样,向用户提供您拥有的冲突数据,并让用户选择要存储的数据。