社交网络(Facebook、Twitter等)用户帐户集成(重复场景)

社交网络(Facebook、Twitter等)用户帐户集成(重复场景),facebook,twitter,user-accounts,account-management,Facebook,Twitter,User Accounts,Account Management,因此,关于如何将各种个人社交网络身份验证/注册集成到现有用户帐户中,肯定有很多教程。但我似乎找不到太多信息的情况是,如果用户使用不同的社交网络凭据登录到您的帐户。例如: 场景#1 用户使用站点的身份验证在站点上注册。 然后用户使用Facebook Connect登录/注册网站。 然后用户使用Twitter登录/注册站点 如何将所有这些集成到一个帐户中 显然,一旦用户注册,他们就可以在帐户设置页面中添加其他社交网络关联。但我更担心的是,如果他们通过另一个社交网络注册,而不记得他们已经设置好了 我的

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

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

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

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

我的总体想法是试图找出一种方法,使用“用户名”或电子邮件来尝试猜测,并向用户展示一种组合帐户的方法

有人有什么想法吗?

跟进-

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

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

但就交叉核对而言,你能做的只有这么多。许多社交网络API确实提供电子邮件地址(一旦您通过OAuth登录),但只有当用户选择公开其地址时,才可以访问这些地址,这是不保证的

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

最后,如果您通过这种方式找到匹配的电子邮件地址,建议提示用户链接帐户,而不是假设他/她希望自动完成链接。有些人喜欢保持多重性格。i、 看起来你也注册了twitter——你想链接你的账户吗?这会让你的生活看起来很有价值

你可能会考虑提供奖励链接用户账号或者提供电子邮件地址(当然,根据你网站的功能确定这些可能是什么)。

在数据库方面,我正在研究的解决方案是维护多个帐户,然后如果通过各种方式发现了链接信息,则在查找表中指示所述链接。 另一种方法是,一旦找到链接,尝试将多个帐户的所有相关条目合并到一个帐户实体中——关于后一种方法,我可以说的是,我会小心地这样做,因为根据用户的活动级别和数据库模式的复杂度,可能会有一个非常复杂的级别

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

顺便说一句,自从我上一篇文章以来,我就知道了如何让twitter OAuth正常运行——如果你感兴趣,可以查看我的其他答案以了解详细信息

JB

嗨,马特

我也在解决同样的问题,对吗 现在

假设用户从正则表达式开始 站点帐户(不是 如果他看到 所有漂亮的“连接XXX” 网络“按钮!!!),您可以使用 OAuth或javascript API (facebookConnect或@anywhere)- 我还没有完全搞清楚后者 然而,我不确定我是否推荐它作为 我不认为它提供了丰富的 API(与后端库一样)以 登录到其他网站

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

当用户返回站点时,您 那么

1验证社交网站设置的cookie 网络服务(各种方案) 通常验证签名,基于 在您的 应用程序数据-我指的是 注册时获得的数据 使用twitter/facebook的应用程序,通常是 使用者密钥、应用程序ID等- 与收到的饼干)所以你知道 用户已使用社交网站登录 网络

2查找您的数据库条目关联 如上所述

3.根据以下内容手动登录您的用户 假设facebook/twitter 连接是安全的

警告:这只与您的 实现(或尽可能安全) facebook/twitter的实施,如果 你更喜欢……)

尽管twitter的OAuth没有 目前看来效果不错,, 他们对 这个过程信息量很大:

祝你好运

J


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

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

如果用户单击“我有一个帐户”,我们会将其发送到FB auth,并将FB的电子邮件返回到我们的应用程序。我们将该电子邮件与现有用户进行比较。如果匹配,则添加FB cr