Mat*_*att 14 twitter facebook account-management user-accounts
因此,关于如何将各种个人社交网络身份验证/注册集成到现有用户帐户中,肯定有很多教程.但我似乎无法找到很多信息的情况是用户是否使用不同的社交网络凭据登录您的帐户.例如:
场景#1
用户使用站点的身份验证在站点上注册.
用户然后使用Facebook Connect在现场登录/注册.
用户然后使用Twitter在网站上登录/注册.
如何将所有这些整合到一个帐户中?
显然,一旦用户注册,他们就可以在帐户设置页面中添加其他社交网络关联.但我更担心的是,如果他们通过其他社交网络注册而不记得他们已经设置好了.
我的一般想法是试图找出一种方法来使用"用户名"或电子邮件来尝试猜测并向用户呈现在那里组合帐户的方法.
有人有什么想法?
跟进-
如果您的用户不记得他们之前注册过,那么,祝他们好运;)
正如您所描述的那样,我计划为用户提供在通过某种方式登录后链接其他帐户的选项。
但就交叉检查而言,你能做的就只有这么多了。许多社交网络 API 确实提供了电子邮件地址(一旦您通过 OAuth 进入),但只有当用户选择公开他/她的地址时,这些地址才可以访问,但这是无法保证的。
还不能保证用户对每个社交网络帐户使用相同的电子邮件地址,因此即使您设法检索地址,它可能对您有任何用处。
最后,如果您通过这种方式找到匹配的电子邮件地址,建议提示用户链接帐户,而不是假设他/她希望自动完成此操作。有些人喜欢保持多重人格。即“看来您也注册了 Twitter - 您想链接您的帐户吗?这会让您的生活看起来值得一过。”
您可以考虑提供奖励来链接用户帐户或提供电子邮件地址(当然,您可以根据网站的功能来确定这些可能是什么)。
我正在研究的数据库端解决方案是维护多个帐户,然后如果通过各种方式发现链接信息,则在查找表中指示所述链接。另一种方法是,一旦找到链接,尝试将多个帐户的所有相关条目合并到一个帐户实体中 - 关于后一种方法,我只能说的是,我会谨慎行事,因为可能会出现非常复杂的情况,具体取决于用户的活动级别和数据库架构的复杂性。
在我的(心理/实际)命名空间中,以老式方式注册的用户有一个“标准”帐户,而使用社交网络的用户有一个“别名”帐户。那么目标就变成定义别名应该指向的位置,即创建查找,以便通过任一方式进行的后续登录检索两个帐户的相关信息(优先显示“标准”帐户的个人数据)。
顺便说一句,自从我上一篇文章以来,我想出了如何让 twitter OAuth 表现出来 - 如果您感兴趣,您可以查看我的其他答案以获取详细信息。
柔佛州
嗨马特,
我现在正在解决同样的问题。
假设用户从常规站点帐户开始( 如果他看到所有漂亮的“连接 XXX 网络”按钮,则假设不一定安全!),您可以使用 OAuth 或 javascript API(facebookConnect 或 @anywhere - Haven )我还没有完全弄清楚后者,我不确定我是否推荐它,因为我认为它没有提供像后端库那样丰富的 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
| 归档时间: |
|
| 查看次数: |
3437 次 |
| 最近记录: |