【问题标题】:How to associate two OpenID providers as being the same user如何将两个 OpenID 提供者关联为同一用户
【发布时间】:2011-01-03 12:23:37
【问题描述】:

我已经在我的网站上实现了 OpenID,我很好奇诸如 stackoverflow.com 之类的网站如何知道我的 gmail 帐户已链接到我的 facebook 帐户。

例如我第一次来 stackoverflow.com 并使用我的 gmail 帐户登录。然后我注销,从浏览器中清除 cookie 并返回 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 rpx


    【解决方案1】:

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

    解决此问题的另一种方法是提供在您的网站上链接两个帐户的功能。我的意思是,我已经看到实现了社交身份验证,如果您使用 OpenID 或 Facebook 登录,每个都将是一个单独的实体。在用户尝试使用不同的系统登录之前,您可以提示他们连接到他们的 Facebook/Twitter/OpenID 帐户。一点点社会工程学可能会为您节省很多问题。如果他们连接,您当然会遇到问题,然后继续单独登录。在我的脑海中,TripIt 允许您将不同的帐户合并为一个。您可以提供此功能。

    只是一些想法。

    【讨论】:

    • 你的其他想法是我考虑过的。我想知道如果他们分别使用 gmail 和 facebook 登录,然后尝试将一个已经存在的帐户合并到另一个帐户中会发生什么。我想我只需要弄清楚什么会被覆盖,然后连接两个帐户。
    • 没错。你可能会做出一个行政决定,如果事情发生冲突,将使用 Facebook 数据,因为它“更新更多”或其他东西。否则,如果您在合并期间发生冲突,您可以像 git 那样做 - 向用户提供您拥有的冲突数据,并让他选择他希望您存储的数据。
    猜你喜欢
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    相关资源
    最近更新 更多