跟进-
如果您的用户不记得他们之前注册过,那么,祝他们好运;)
正如您所描述的那样,我计划为用户提供在通过某种方式登录后链接其他帐户的选项。
但就交叉检查而言,你能做的就只有这么多了。许多社交网络 API 确实提供了电子邮件地址(一旦您通过 OAuth 进入),但只有当用户选择公开他/她的地址时,这些地址才可以访问,但这是无法保证的。
还不能保证用户对每个社交网络帐户使用相同的电子邮件地址,因此即使您设法检索地址,它可能对您有任何用处。
最后,如果您通过这种方式找到匹配的电子邮件地址,建议提示用户链接帐户,而不是假设他/她希望自动完成此操作。有些人喜欢保持多重人格。即“看起来您也注册了 Twitter - 您想链接您的帐户吗?这会让您的生活看起来值得一过。”
您可以考虑提供奖励来链接用户帐户或提供电子邮件地址(当然,您可以根据网站的功能来确定这些可能是什么)。
我正在研究的数据库端解决方案是维护多个帐户,然后如果通过各种方式发现链接信息,则在查找表中指示所述链接。
另一种方法是,一旦找到链接,尝试将多个帐户的所有相关条目合并到一个帐户实体中 - 关于后一种方法,我只能说,我会谨慎行事,因为可能会存在非常复杂的程度,具体取决于用户的活动级别和数据库架构的复杂性。
在我的(心理/实际)命名空间中,以老式方式注册的用户有一个“标准”帐户,而使用社交网络的用户有一个“别名”帐户。那么目标就变成定义别名应该指向的位置,即创建查找,以便后续登录通过either手段检索相关信息both帐户(优先显示“标准”帐户的个人数据)。
顺便说一句,自从我上一篇文章以来,我想出了如何让 twitter OAuth 表现出来 - 如果您感兴趣,您可以查看我的其他答案以获取详细信息。
JB
hi matt,
我正在解决同样的问题
现在。
假设用户从常规开始
站点帐户(即not如果他看到的话,必然可以安全地假设
所有漂亮的“与 XXX 连接
网络”按钮!!!),您可以使用
OAuth 或 javascript API
(facebookConnect 或@anywhere -
还没有完全弄清楚后者
但我不确定我是否推荐它
我不认为它提供了那么丰富的
API 与后端库一样)
登录其他网站。
API 应该返回特定的
成功后的信息
从社交网络登录/重定向
- 例如用户 ID 和访问令牌,您可以将其存储在您的
数据库以某种能力关联
您的“实际”应用程序用户
社交网络的 ID。
当用户返回网站时,您
那么可以
1 验证社交设置的cookie
网络服务(各种方案
通常验证签名,基于
您的 sha1 或 md5 哈希值
应用程序数据 - 我的意思是
您注册时获得的数据
带有 twitter/facebook 的应用程序,通常是
消费者密钥、应用程序 ID 等 -
与收到的cookie)所以你知道
用户已通过社交登录
网络
2 找到你的数据库条目关联
如上所述
3 登录您的用户manually基于
假设 facebook/twitter
连接是安全的。
警告:这仅与您的安全一样
实施(或安全如
facebook/twitter 的实现,如果
你比较喜欢...)
虽然twitter的OAuth没有
目前看来工作正常,
他们的一般描述
过程信息非常丰富:http://dev.twitter.com/pages/auth http://dev.twitter.com/pages/auth
祝你好运。
J