微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使用Twitter和Facebook Oauth的多次登录问题

| 我正在使用TweetSharp和Facebook C#SDK将Twitter和Facebook登录添加到MVC 3测试应用程序中。 当前,当用户使用Twitter登录时,我会在用户表中为该用户创建一个用户帐户,并将ID,令牌和令牌密钥存储在具有用户表外键的单独表中。由于ID,令牌和令牌密钥不会过期,因此当用户下次使用Twitter登录时,我可以快速找到正确的用户帐户。 如果同一用户下次使用Facebook登录怎么办?由于Twitter未在其API中提供电子邮件,因此我没有将用户帐户绑定到Twitter或Facebook的通用信息,因此我假设我必须为Facebook登录创建新的用户帐户吗?有人对这个有经验么?有什么办法可以解决这个问题?     

解决方法

        并不是真正的解决方案,更多的解决方法。我遇到了同样的问题,最终迫使用户在允许他们进行任何进一步操作之前,要求他们的电子邮件地址来完成他们的帐户资料。这意味着,如果与Facebook身份验证一起返回的电子邮件地址与使用twitter登录创建的电子邮件地址匹配,那么我不需要创建其他帐户。 如果帐户首先由facebook auth创建,则更大的困难反过来。这意味着不合时宜地结帐。 坦白说,我们从允许用户使用Twitter登录获得的信息不值得付出努力,最终仅允许Facebook身份验证。我不确定Twitter对您的解决方案有多重要。 我知道这不是一个完美的答案,但我想我会分享自己的经验。     ,        我在内部用唯一的密钥标识每个用户。当任何用户访问该网站时,我都会检查Cookie以获取用户密钥。如果没有cookie,则创建一个新密钥。将其添加到用户数据库并设置一个新的cookie。用户首次通过使用Facebook,Twitter或.Net成员身份登录完成注册后,该密钥便永远与该用户结婚。 因此,当现有的Twitter用户首次使用Facebook登录时,我们知道他们是谁,因为他们的用户密钥存在。它与macou建议的解决方案基本相同。 Macou具有在新计算机上工作的优势,或者如果清除了cookie,则cookie解决方案具有不需要额外用户输入的优势。     ,        您不能仅使用cookie,因为我可以使用同一浏览器以Facebook身份登录,而我的妻子以Twitter身份登录,而在这种情况下,您不应链接这两个帐户。 我认为您还需要做更多的事情: 然后使用Cookie 使用名称/名字/登录名/ ...来查看它们是否匹配。 例: Cookie ID:18459439731114330636,找到ID = 18459439731114330636的用户。找到,转到2,未找到,转到3。 用户名/名字/姓氏/ ...与当前用户匹配吗?如果是,请关联帐户。如果不是,请执行3。 创建一个新用户。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。