首页 文章

使用Twitter和Facebook Oauth的多重登录问题

提问于
浏览
1

我正在使用TweetSharp和Facebook C#SDK将Twitter和Facebook登录添加到MVC 3测试应用程序中 .

目前,当用户使用Twitter登录时,我在用户表中为该用户创建用户帐户,并将id,令牌和令牌密钥存储在具有用户表的外键的单独表中 . 由于id,token和token secret不会过期,因此当用户下次使用Twitter登录时,我可以快速找到正确的用户帐户 .

如果同一个用户下次使用Facebook登录怎么办?由于Twitter没有在他们的API中提供电子邮件,因此我没有将用户帐户绑定到Twitter或Facebook的常用信息我假设我必须为Facebook登录创建一个新的用户帐户?有人对这个有经验么?有什么方法可以解决这个问题吗?

3 回答

  • 0

    不是一个真正的解决方案,更多的是解决方案 . 我遇到了同样的问题,并最终强迫用户通过询问他们的电子邮件地址来完成他们的帐户资料,然后才允许他们继续进行 . 这意味着如果使用Facebook身份验证返回的电子邮件地址与使用twitter登录创建的电子邮件地址匹配,那么我不需要创建另一个帐户 .

    如果帐户是由facebook auth首先创建的,则更大的难度是另一种方式 . 这意味着一个不整洁的帐户结婚 .

    说实话,我们从允许用户使用Twitter登录获得的信息不值得付出努力,最终只完成了允许Facebook授权 . 我不确定twitter对你的解决方案有多重要 .

    不是我知道的完美答案,但我想我会分享我的经验 .

  • 2

    我在内部使用唯一键识别每个用户 . 当任何用户访问该站点时,我会检查用户密钥的cookie . 如果没有cookie,我会创建一个新密钥 . 将其添加到用户数据库并设置新cookie . 一旦用户通过登录任何Facebook,Twitter或.Net会员资格第一次完成注册,该密钥将永远与该用户结婚 .

    因此,当现有的Twitter用户第一次使用Facebook登录时,我们知道他们是谁,因为他们的用户密钥存在 . 它与macou建议的解决方案基本相同 . Macou有一台新机器的优势,或者如果cookie被清除,那么cookie解决方案不需要额外的用户输入 .

  • 0

    你不能只使用cookie,因为我可以登录facebook,然后我的妻子使用相同的浏览器登录Twitter,在这种情况下你不应该链接这两个帐户 .

    我认为你需要做的不仅仅是:

    • 然后使用cookie

    • 使用名称/名字/登录名/ ...查看它们是否匹配 .

    例:

    • Cookie id:18459439731114330636,找到id = 18459439731114330636的用户 . 找到,转到2,找不到,转到3 .

    • 用户名/名字/姓氏/ ...是否与当前用户匹配?如果是,请链接帐户 . 如果没有,请转到3 .

    • 创建新用户 .

相关问题