帐号体系详解(1)统一登录流程

浏览:1686 发布日期:2017/01/06 分类:求助交流 关键字: 统一登录 微信登录 微博登陆
1、场景描述
我们经常会碰到这样的需求,比如某企业需要做一个投诉报修的小系统,每个投诉报修的用户,如果他是第一次用微信登录我们的系统,那么需要输入手机号码,验证了这个手机号码后,才能进入我们的系统,提交报修信息。第一次报修后,以后用户再次提交报修信息,即可以自动识别该用户,免去登录的麻烦。我们的系统要能在微信里面运行,还要能在微博里面,浏览器里面运行,以后我们的系统还要做APP,用户同一帐号登录的APP和在微信微博里面登录的信息,应该是一样的。
类似于这类需求模型,我们都叫做统一帐号体系模型,他的大概整体流程是像下面这样的

该图重点在于统一登录流程,该流程的核心在于统一帐号体系,下面先来阐述统一帐号模型。
2、统一帐号核心模型
统一帐号模型的本质是以自有系统为基础,其他系统帐号标识ID与本系统相互绑定。一般的移动互联网体系中,核心帐号模型包含用户id,登录手机号、用户密码、头像、昵称、用户状态等,其他的信息,都可以在此基础上做扩展,如积分数目、用户等级、性别,年龄等,如果要使用邮箱、用户名等体系登录,我们还需要有独立的关联表,这些都在后面进行阐述。如下是统一账号基础模型。该模型中的id即为其他模型中的userid。

相关sql语句如下.
-- ----------------------------
-- Table structure for `account_user`
-- ----------------------------
DROP TABLE IF EXISTS `account_user`;
CREATE TABLE `account_user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID,自增长',
`mobile` varchar(15) NOT NULL COMMENT '用户登录手机号',
`passwd` varchar(40) NOT NULL COMMENT '用户密码,MD5加密,可以考虑策略时加盐',
`nickname` varchar(20) DEFAULT NULL COMMENT '用户昵称',
`avatar` varchar(150) DEFAULT NULL COMMENT '用户头像URL地址',
`stat` varchar(10) DEFAULT 'ACTIVE' COMMENT 'ACTIVE/FROZEN/DELETED帐号状态,正常,冻结,或者删除',
PRIMARY KEY (`id`),
KEY `mobile` (`mobile`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='统一登录主用户帐号信息表';
注意事项:
本书sql语句目标服务器为mysql 5.0,本书数据库以UTF8编码。为了提高查询效率,我们通常会将mobile字段添加索引。为了保证系统安全,我们通常会将passwd加密存储,加密函数一般为MD5或者sha1。用户头像avatar字段一般不存储图片ID,因为该字段数据可能来自微信、微博等第三方社交媒体,是动态获取的。用户昵称nickname字段需要做好特殊字符的过滤工作,因为在微信微博等体系中,很多活跃用户会在自己的昵称中添加非打印字符,如果不过滤掉,sql语句可能会执行出错。该表读取频次远大于增改频次,一般用MyISAM做为引擎。一般来说,我们应该基于该表做缓存机制。


--未完待续,下一章节讲述微信登录和账号绑定

以上内容本人将在即将开始的直播课程中详细阐述,感兴趣的可以用威信扫一扫,免费听课

你也可以点下面这个连接,一次全部看完

http://yuedu.baidu.com/ebook/977275a5767f5acfa0c7cd55

个人微信号 betaniao
最佳答案
评论( 相关
后面还有条评论,点击查看>>