摘要:本篇文章,主要讲述了用户登录注册的逻辑及如何用社交账号登录。仅供参考,具体情况依据产品需求而定。社交账号登录参数参数平台渠道社交平台开放验证数据的合法性。若存在,直接进行登录。若本站不存在账号,引导用户注册,成功后与当前关联即可。
本篇文章,主要讲述了用户登录注册的逻辑及如何用社交账号登录。
仅供参考,具体情况依据产品需求而定。
开放平台有哪些?
微信
Sina微博
163
360
豆瓣
淘宝
github
开源中国
其他...
用户注册逻辑
参数
(username)用户名
(password)密码
(platform_id)平台ID
(code)验证码
验证数据合法性。
判断`user`表是否存在该用户名。 若存在,引导用户登录。 若不存在,执行注册的程序。
密码加密规则 (参考:加密技术与密钥安全管理)
用户登录逻辑
普通登录:
参数:
(username)用户名
(password)密码
(platform_id)平台ID
(code)验证码
验证数据的合法性。
判断user表中是否存在用户数据。
记录日志。
社交账号登录(参数):
参数:
(platform_id)平台ID
(channel_id)渠道ID
(open_id) 社交平台开放ID
验证数据的合法性。
判断`user_social`表中是否存在该openid的数据。 若存在,直接进行登录。 若不存在,将数据,存储到`user_social` 表,引导用户绑定本站账号。 若本站已存在账号,直接关联账号即可。
若本站不存在账号,引导用户注册,成功后与当前openid关联即可。
记录日志
数据表结构
用户账号表
CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT "主键ID", `username` varchar(80) NOT NULL DEFAULT "" COMMENT "用户名", `password` char(60) NOT NULL DEFAULT "" COMMENT "密码", `platform_id` tinyint(1) unsigned NOT NULL DEFAULT "0" COMMENT "平台ID(1=PC,2=Wap,3=Android,4=iOS)", `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间", PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT="用户账号表";
用户社交账号表
CREATE TABLE `user_social` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT "主键ID", `uid` int(11) unsigned NOT NULL DEFAULT "0" COMMENT "用户ID", `open_id` varchar(120) NOT NULL DEFAULT "" COMMENT "社交平台开放ID", `platform_id` tinyint(1) unsigned NOT NULL DEFAULT "0" COMMENT "平台ID(1=PC,2=Wap,3=Android,4=iOS)", `channel_id` tinyint(1) unsigned NOT NULL DEFAULT "0" COMMENT "渠道ID(1=QQ,2=SinaWeibo,3=Weixin)", `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间", `update_time` timestamp NOT NULL DEFAULT "0000-00-00 00:00:00" COMMENT "更新时间", PRIMARY KEY (`id`), KEY `idx_uid` (`uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT="用户社交账号表";
用户登录日志表
CREATE TABLE `user_login_log` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT "主键ID", `uid` int(11) unsigned NOT NULL DEFAULT "0" COMMENT "用户ID", `platform_id` tinyint(1) unsigned NOT NULL DEFAULT "0" COMMENT "平台ID(1=PC,2=Wap,3=Android,4=iOS)", `channel_id` tinyint(1) unsigned NOT NULL DEFAULT "0" COMMENT "渠道ID(1=QQ,2=SinaWeibo,3=Weixin)", `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间" PRIMARY KEY (`id`), KEY `idx_uid` (`uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT="用户登录日志表";
系统的讲解 - SSO 单点登录
系统的讲解 - PHP WEB 安全防御
系统的讲解 - PHP 缓存技术
系统的讲解 - PHP 接口签名验证
系统的讲解 - PHP 浮点数高精度运算
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/30515.html
摘要:在详解中使用解决了第三方账号登录集成的问题,那么在获取到用户资料之后呢集成多个社交账号,该如何绑定同一个账号本篇就让我们来探讨一下集成登录的那点事。 Dearmadman 在 Laravel Socialite 详解 中使用 larastarscn/socialite 解决了第三方账号登录集成的问题,那么在获取到用户资料之后呢?集成多个社交账号,该如何绑定同一个账号?本篇就让我们来探讨...
摘要:验证码安全参考信息重放登录注册找密等入口,可能通过短信验证码邮箱验证码之类的进行确认操作,如果末对操作进行次数及频率上的限制,则会产生大量的重放攻击。高并发缺陷交易类重放攻击,高并发的情况下末对用户操作行为加锁,导致购买限制的绕过。 showImg(https://segmentfault.com/img/bVBVVR); 业务安全从流程设计维度可划分为账户体系安全、交易体系安全、支付...
摘要:从最大的同性社交平台获取数据好了,言归正传,回到题目。乌云密布的爬虫百度网盘这件事,是我不想看到的,这类安全问题的一个共同特点用户自身确实存在问题。 本文作者:夏之冰雪,i春秋签约作家 《我在百度网盘上看到上万条车主个人信息,企业、政府高官信息、各种数据库和无穷无尽的盗版》,一时间,这篇文章就火了,火爆程度另百度猝不及防。 其实呢,这事真不能全怪百度,毕竟用户分享出去了。之所以引起这么...
阅读 840·2021-11-15 17:58
阅读 3640·2021-11-12 10:36
阅读 3778·2021-09-22 16:06
阅读 955·2021-09-10 10:50
阅读 1324·2019-08-30 11:19
阅读 3308·2019-08-29 16:26
阅读 927·2019-08-29 10:55
阅读 3340·2019-08-26 13:48