本篇文章,主要講述了用戶登錄注冊(cè)的邏輯及如何用社交賬號(hào)登錄。
僅供參考淹冰,具體情況依據(jù)產(chǎn)品需求而定。
開放平臺(tái)有哪些巨柒?
- 微信
- Sina微博
- 163
- 360
- 豆瓣
- 淘寶
- github
- 開源中國(guó)
- 其他...
用戶注冊(cè)邏輯
-
參數(shù)
- (username)用戶名
- (password)密碼
- (platform_id)平臺(tái)ID
- (code)驗(yàn)證碼
-
驗(yàn)證數(shù)據(jù)合法性樱拴。
判斷
user
表是否存在該用戶名。若存在洋满,引導(dǎo)用戶登錄疹鳄。
若不存在,執(zhí)行注冊(cè)的程序芦岂。
密碼加密規(guī)則 (參考:加密技術(shù)與密鑰安全管理)
用戶登錄邏輯
-
普通登錄:
-
參數(shù):
- (username)用戶名
- (password)密碼
- (platform_id)平臺(tái)ID
- (code)驗(yàn)證碼
-
驗(yàn)證數(shù)據(jù)的合法性瘪弓。
判斷
user
表中是否存在用戶數(shù)據(jù)。 記錄日志禽最。
-
-
社交賬號(hào)登錄(參數(shù)):
-
參數(shù):
- (platform_id)平臺(tái)ID
- (channel_id)渠道ID
- (open_id) 社交平臺(tái)開放ID
-
驗(yàn)證數(shù)據(jù)的合法性腺怯。
判斷
user_social
表中是否存在該openid的數(shù)據(jù)。若存在川无,直接進(jìn)行登錄呛占。
若不存在,將數(shù)據(jù)懦趋,存儲(chǔ)到
user_social
表晾虑,引導(dǎo)用戶綁定本站賬號(hào)。若本站已存在賬號(hào),直接關(guān)聯(lián)賬號(hào)即可帜篇。
若本站不存在賬號(hào)糙捺,引導(dǎo)用戶注冊(cè),成功后與當(dāng)前openid關(guān)聯(lián)即可笙隙。
記錄日志
-
數(shù)據(jù)表結(jié)構(gòu)
-
用戶賬號(hào)表
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 '平臺(tái)ID(1=PC,2=Wap,3=Android,4=iOS)', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶賬號(hào)表';
-
用戶社交賬號(hào)表
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 '社交平臺(tái)開放ID', `platform_id` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '平臺(tái)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 '創(chuàng)建時(shí)間', `update_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '更新時(shí)間', PRIMARY KEY (`id`), KEY `idx_uid` (`uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶社交賬號(hào)表';
-
用戶登錄日志表
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 '平臺(tái)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 '創(chuàng)建時(shí)間' PRIMARY KEY (`id`), KEY `idx_uid` (`uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶登錄日志表';
Thanks ~