统一帐号体系业务及模型

统一帐号体系业务及模型

1 统一帐号体系业务及模型 
1.1、场景描述 
我们经常会碰到这样的需求,比如某企业需要做一个投诉报修的小系统,每个投诉报修的用户,如果他是第一次用微信登录我们的系统,那么需要输入手机号码,验证了这个手机号码后,才能进入我们的系统,提交报修信息。第一次报修后,以后用户再次提交报修信息,即可以自动识别该用户,免去登录的麻烦。我们的系统要能在微信里面运行,还要能在微博里面,浏览器里面运行,以后我们的系统还要做APP,用户同一帐号登录的APP和在微信微博里面登录的信息,应该是一样的。 
类似于这类需求模型,我们都叫做统一帐号体系模型,他的大概整体流程是像下面这样的 
这里写图片描述
该图重点在于统一登录流程,该流程的核心在于统一帐号体系,下面先来阐述统一帐号模型。 
1.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做为引擎。一般来说,我们应该基于该表做缓存机制。 
1.3、用微信等第三方平台登录 
所谓用微信登录系统包括几个方面的内容,一是利用微信公众号在微信里面登录系统,二是利用APP调用微信授权接口登录APP,三是利用微信扫描登录PC站点,但是他们的模型是一样的,我们先以微信公众号为例说明。 
1.3.1 在微信中利用微信公众号授权登录 
微信公众号授权登录模型如下所示 
这里写图片描述
相关sql语句如下


– Table structure for account_weixin


DROP TABLE IF EXISTS account_weixin
CREATE TABLE account_weixin ( 
openid varchar(40) NOT NULL DEFAULT ” COMMENT ‘用户openid ‘, 
userid int(11) NOT NULL COMMENT ‘该OPENID帐号绑定的用户ID’, 
PRIMARY KEY (openid
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=’用户微信OPENID绑定信息表’;


– Records of account_weixin


猜你喜欢

转载自blog.csdn.net/zhangbijun1230/article/details/83502829
今日推荐