首页 > 后端开发 > php教程 > 社交网络身份验证:合并帐户

社交网络身份验证:合并帐户

尊渡假赌尊渡假赌尊渡假赌
发布: 2025-02-20 10:22:10
原创
927 人浏览过

Social Network Authentication: Merging Accounts

本节探讨了阻止用户在您的应用程序中的不同登录方法上创建多个帐户。

关键因素:

    社交登录会增加用户拥有重复帐户的风险,这是一种令人沮丧的经历。 这可以通过手册或自动帐户合并来缓解。
  • >
  • 手动合并使用户可以将其他社交网络连接到其现有帐户。 “连接”按钮启动社交网络登录过程。如果社交网络ID已经存在于
  • >表中,则删除了重复帐户,并且记录链接到当前用户。> user_provider>自动合并将社交网络用户配置文件与连接后的现有用户进行比较。电子邮件地址是一个不错的起点,但并非所有网络都提供它们,从而限制了这种方法的有效性。 为了避免安全漏洞,请在登录和合并之间添加验证步骤。如果找到了潜在的匹配项,则要求用户使用其原始登录方法重新认证。成功的重新认证在合并之前确认用户的身份。 虽然这可以最大程度地减少重复项,但仍可能保留。user_provider>
  • >帐户合并:
>允许通过各种社交网络注册和标准注册系统增加重复帐户的可能性。 用户最初可能会通过Facebook注册,然后尝试使用Twitter登录,不知道先前存在的帐户。 我们可以通过手册或自动合并来解决此问题。

数据库设置:

建议使用两个表:一般

表和

表。

表跟踪第三方登录:

useruser_provider>存储社交网络名称(例如,Google),

存储网络的用户ID。
CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) DEFAULT NULL,
  `firstname` varchar(50) NOT NULL,
  `lastname` varchar(50) NOT NULL,
  `emailaddress` varchar(50) NOT NULL,
  `city` varchar(50) NOT NULL,
  `birtdate` date NOT NULL,
  `gender` varchar(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
登录后复制

user_provider>手动帐户合并:

CREATE TABLE IF NOT EXISTS `user_provider` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` int(11) COLLATE utf8_unicode_ci NOT NULL,
  `provider` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `provider_uid` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
登录后复制

如果使用默认系统通过Google注册和后来注册的用户,则将存在两个provider条目和一个条目。 用户可以连接其他社交网络。 “连接”按钮启动社交网络登录。 系统检查社交网络ID是否在provider_uid中。如果找到了匹配项,则删除了重复帐户,并将

记录链接到当前用户。否则,添加了新的

记录。 考虑在合并之前提示用户确认。 切记合并重复帐户中的任何关联内容。 如果与通过默认系统注册的现有帐户合并,请求用户名和密码验证。

>自动帐户合并:

>自动合并将检索到的社交网络配置文件与现有用户进行比较。 电子邮件地址是一个很好的初始检查,但是它们在某些网络中的缺席限制了这种方法。 结合其他个人资料字段(例如,出生日期,位置)可提高匹配的准确性,但引入了安全风险。 验证步骤至关重要:在潜在匹配之后,需要通过原始登录方法进行重新认证,以在合并之前验证用户的身份。

结论: >本系列涵盖了创建框架 - 敏捷软件包,使用Google的社交登录实现以及帐户合并技术。 未来的文章将扩大整合其他社交网络。 欢迎反馈。

>

常见问题(常见问题解答):

(原始常见问题是相关的,因为它们是相关的,并为整体内容增加了价值。) (此处包括原始常见问题解答部分,因为它是文章的宝贵补充,不需要重写。)>>

以上是社交网络身份验证:合并帐户的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板