【问题标题】:Social Network (Facebook, Twitter, etc) User Account Integration (duplicate scenario)社交网络(Facebook、Twitter 等)用户帐户集成(重复场景)
【发布时间】:2014-04-03 10:31:54
【问题描述】:

因此,肯定有很多关于如何将各种个人社交网络身份验证/注册集成到现有用户帐户的教程。但是我似乎找不到太多信息的情况是,如果用户使用不同的社交网络凭据登录您的帐户。例如:

场景 #1
用户使用网站的身份验证在网站上注册。
然后用户使用 Facebook Connect 在网站上登录/注册。
然后用户使用 Twitter 在网站上登录/注册。

如何将所有这些集成到一个帐户中?

显然,一旦用户注册,他们可以在帐户设置页面中添加其他社交网络关联。但我更担心他们是否通过其他社交网络注册而不记得他们已经设置。

我的一般想法是试图找出一种方法来使用“用户名”或电子邮件来尝试猜测并向用户展示一种在此处合并帐户的方法。

有人有什么想法吗?

【问题讨论】:

    标签: facebook twitter user-accounts account-management


    【解决方案1】:

    跟进 -

    如果您的用户不记得他们以前注册过,那么祝他们好运;)

    正如您所描述的,我计划让用户在通过一种或另一种方式登录后,可以选择链接其他帐户。

    但就交叉检查而言,您能做的只有这么多。许多社交网络 API 确实提供了电子邮件地址(一旦您通过 OAuth 闯入),但只有当用户选择公开他/她的地址时,才能访问这些地址,这并不能保证。

    同样不能保证用户为每个社交网络帐户使用相同的电子邮件地址,因此即使您设法检索到一个地址,它也可能对您有用,也可能没有。

    最后,如果您通过此类方式找到匹配的电子邮件地址,建议您提示用户关联帐户,而不是假设他/她希望自动完成此操作。有些人喜欢保持多重人格。即“看起来你也注册了 twitter - 你想链接你的帐户吗?它会让你的生活看起来值得过。”

    您可能会考虑提供奖励以链接用户帐户或提供电子邮件地址(当然,这取决于您根据您网站的功能确定这些可能是什么)。

    我正在研究的数据库方面的解决方案是维护多个帐户,然后如果通过各种方式发现链接信息,则在查找表中指示所述链接。 另一种方法是,一旦您找到一个链接,尝试将多个帐户的所有相关条目合并到一个帐户实体中 - 关于后一种方法,我只能说我会谨慎行事,因为可能存在相当高的复杂性,具体取决于关于用户的活动级别和数据库架构的复杂性。

    在我的(心理/实际)命名空间中,以老式方式注册的用户拥有一个“标准”帐户,而使用社交网络的用户拥有一个“别名”帐户。然后目标变成定义别名应该指向的位置,即创建查找,以便随后通过 either 登录意味着检索 both 帐户的相关信息(带有显示“标准”帐户的个人数据的偏好)。

    顺便说一句,自从我上一篇文章以来,我已经弄清楚了如何使 twitter OAuth 正常运行 - 如果您有兴趣,可以查看我的其他答案以获取详细信息。

    JB

    嗨,马特,

    我正在解决同样的问题 现在。

    假设用户以常规开头 网站帐户(不是 如果他看到,肯定可以假设 所有漂亮的“与XXX联系 网络”按钮!!!),您可以使用 OAuth 或 javascript API (facebookConnect 或@anywhere - 还没有完全弄清楚后者 但我不确定我是否推荐它 我不认为它提供了丰富的 API 和后端库一样) 登录其他网站。

    API 应该返回某些 成功后的信息 从社交网络登录/重定向 - 例如用户 ID 和访问令牌,然后您可以将其存储在您的 以某种能力关联的数据库 您的“实际”应用程序用户 社交网络的 ID。

    当用户返回网站时,您 然后可以

    1 验证社交网站设置的 cookie 网络服务(各种方案 通常验证签名,基于 在你的 sha1 或 md5 哈希上 应用程序数据 - 我的意思是 注册时获得的数据 带有 twitter/facebook 的应用程序,通常是 消费者密钥、应用程序 ID 等 - 使用收到的 cookie)所以你知道 用户已使用社交登录 网络

    2 找到你的数据库条目关联 如上所述

    3 登录您的用户手动基于 facebook/twitter 的假设 连接是安全的。

    警告:这仅与您的一样安全 实施(或与 facebook/twitter 的实现,如果 你喜欢...)

    虽然 twitter 的 OAuth 没有 目前似乎工作得很好, 他们的一般描述 过程非常有用: http://dev.twitter.com/pages/auth

    祝你好运。

    J

    【讨论】:

    • j,很高兴看到其他人在处理这个问题。我觉得我得到了你描述的场景,用户首先注册一个站点帐户,然后想要附加其他社交网络帐户等。我的主要问题是掌握另一个场景,当用户第一次使用“登录XXX”按钮,无需站点帐户。显然我需要自动生成一个帐户,但是当他们返回站点并使用不同的“使用 XXX 登录”按钮时会发生什么?我应该根据电子邮件检查吗?我应该向用户显示什么?马特
    • 很难找到一个万无一失的计划。一件事——与其说是真正的程序化解决方案,不如说是 UX 解决方案——我见过的网站有一个个人资料页面(偶尔会以某种方式提示用户“完成你的个人资料”),可以在其中输入附加信息或“链接到' 社交网络设置。一旦你有了这些数据,你就可以在服务器端得出逻辑结论,并在你的用户数据库中创建适当的链接。
    【解决方案2】:

    我一直在考虑将 FB auth 添加到我们的应用程序中,但我们知道我们的回访用户可能会单击它并完成新项目的结帐,然后惊讶地发现他们没有看到任何现有订单。为了解决这个问题,当用户点击“使用 Facebook 登录”项目时,我们会使用该点击来触发带有两个选项的下拉菜单:

    [ 用 Facebook 登录 ]
    [创建新帐户]
    [我有一个帐户]

    如果用户点击“我有一个帐户”,我们会将他们发送到 FB auth 并将电子邮件从 FB 返回到我们的应用程序。我们将该电子邮件与我们现有的用户进行比较。如果匹配,我们将 FB 信用添加给用户。如果不匹配,我们会发出警报:

    您在 FB 的电子邮件与我们的任何帐户都不匹配。要登录您现有的帐户,请在下方使用您的电子邮件登录,或更新您 Facebook 帐户中的电子邮件

    这允许用户创建一个全新的帐户,如果他们想将它们分开,而不需要新的电子邮件服务。虽然这是一个边缘案例,但它是一个特性。

    【讨论】:

      猜你喜欢
      • 2011-07-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 2015-05-18
      • 1970-01-01
      • 2011-04-08
      • 2012-07-28
      相关资源
      最近更新 更多