跟进 -
如果您的用户不记得他们以前注册过,那么祝他们好运;)
正如您所描述的,我计划让用户在通过一种或另一种方式登录后,可以选择链接其他帐户。
但就交叉检查而言,您能做的只有这么多。许多社交网络 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