本片文章主要講解一下,登陸的三種方式,以及數(shù)據(jù)庫(kù)的設(shè)計(jì)和業(yè)務(wù)流程的設(shè)計(jì)。
一、前期準(zhǔn)備
1. 如果要支持短信驗(yàn)證碼登陸:需要注冊(cè)第三方短信平臺(tái),并研究其集成接口。
2. 如果要支持第三方登陸(如QQ,微信,微博等):需要到對(duì)應(yīng)的開(kāi)放平臺(tái)進(jìn)行注冊(cè),客戶(hù)端可以自己根據(jù)對(duì)應(yīng)平臺(tái)的集成接口進(jìn)行處理,也可以用一些第三方平臺(tái),如友盟
二、數(shù)據(jù)庫(kù)設(shè)計(jì)
1.用戶(hù)基礎(chǔ)信息表user_bases
| 字段名 | 描述 | ||
|---|---|---|---|
| id | 用戶(hù)id,自增 | ||
| username | 用戶(hù)名 | ||
| password | 密碼 | ||
| 電子郵箱 | |||
| phone | 手機(jī)號(hào) | ||
| nickname | 昵稱(chēng) | ||
| ... | 更多的基礎(chǔ)信息 |
2.用戶(hù)認(rèn)證信息表user_auths(如果不涉及第三方登陸,不用創(chuàng)建這個(gè)表)
| 字段名 | 描述 | ||
|---|---|---|---|
| id | 自增 | ||
| uid | 關(guān)聯(lián)用戶(hù)user_bases的id | ||
| third_key | 三方登陸唯一標(biāo)識(shí) | ||
| third_type | 三方登陸類(lèi)型(例如wx:微信,qq:QQ登陸,wb:微博) |
3. 說(shuō)明
3.1 說(shuō)一說(shuō)登陸的具體處理
(1)用戶(hù)名、手機(jī)號(hào)、email+密碼登陸:
直接調(diào)用接口,傳遞賬戶(hù)名和密碼,在user_bases表中查詢(xún)并匹配password(password需要做加密處理)
(2)手機(jī)號(hào)+短信驗(yàn)證碼登陸,分為兩步:
a.發(fā)送驗(yàn)證碼接口:客戶(hù)端:調(diào)用發(fā)送驗(yàn)證碼接口,攜帶手機(jī)號(hào)碼。后臺(tái):調(diào)用第三方短信平臺(tái)接口,返回驗(yàn)證碼保存到redis中,并添加時(shí)效。
b.客戶(hù)端收到短信驗(yàn)證碼后填寫(xiě),調(diào)用驗(yàn)證碼登陸接口:首先驗(yàn)證驗(yàn)證碼,正確的話再根據(jù)手機(jī)號(hào)查詢(xún)用戶(hù)信息。
(3)第三方登陸:
a.客戶(hù)端首先調(diào)用三方平臺(tái)提供的接口:返回唯一標(biāo)識(shí)及用戶(hù)信息(昵稱(chēng),頭像等)。
b.調(diào)用后臺(tái)提供的三方登陸接口(攜帶上步返回的數(shù)據(jù)):
首先需要在user_auths表中查詢(xún)third_key是否存在唯一標(biāo)識(shí),有:說(shuō)明已經(jīng)創(chuàng)建了用戶(hù),沒(méi)有:未創(chuàng)建。
未創(chuàng)建時(shí)需要在user_auths中插入一條數(shù)據(jù),然后再在user_auths中插入一條數(shù)據(jù)。
3.2 說(shuō)一說(shuō)一個(gè)賬號(hào)綁定多個(gè)三方賬號(hào)的具體處理
綁定多個(gè)三方賬號(hào)的前提是:已存在一個(gè)賬號(hào)。這樣綁定三方賬號(hào)時(shí),只需在user_auths中插入一條數(shù)據(jù)即可(對(duì)應(yīng)已存在的那個(gè)賬號(hào)),這樣就實(shí)現(xiàn)了一對(duì)多的關(guān)系。具體看下實(shí)現(xiàn):
users
| id | username | password | email | phone | nickname | ...
| 1 | qaz123 |124568 |... |1523652.. | 張三 | ...
| 2 | lijds963 |985236 |... |1856321.. | 李四 | ...
user_auths
| id | uid | third_key |third_type|...
| 1 | 1 |*********** |weixin |...
| 2 | 1 |*********** |qq |...
| 3 | 2 |*********** |weixin |...
| 4 | 2 |*********** |qq |...
| 5 | 1 |*********** |weibo |...
三、時(shí)序圖,業(yè)務(wù)流程
下圖為三種登陸方式的時(shí)序圖:

四、涉及到的接口
-
用戶(hù)名、手機(jī)號(hào)、email+密碼登陸:
(1)用戶(hù)名、手機(jī)號(hào)、email+密碼登陸接口 -
手機(jī)號(hào)+短信驗(yàn)證碼登陸:
(1)發(fā)送驗(yàn)證碼接口 (2)調(diào)用第三方短信平臺(tái)接口(后臺(tái)直接與三方交互,與客戶(hù)端無(wú)關(guān)) (3)手機(jī)號(hào)+驗(yàn)證碼登陸接口 -
三方登陸:
(1)通過(guò)三方提供的接口獲取唯一標(biāo)識(shí)和相關(guān)用戶(hù)信息(客戶(hù)端調(diào)用,與后臺(tái)無(wú)關(guān)) (2)三方登陸接口 -
注冊(cè)
(1)手機(jī)號(hào)+驗(yàn)證碼注冊(cè) -
修改密碼,綁定,解除綁定
(1)修改密碼接口 (2)解除綁定,三方登陸接口 (3)綁定手機(jī),三方登陸接口
說(shuō)明:有些朋友可能會(huì)將三種登陸接口做成一個(gè)接口,也不是不行,但個(gè)人感覺(jué)這樣代碼能顯得更獨(dú)立,實(shí)現(xiàn)解耦,也方便修改。
五、小結(jié)
以上基本就能實(shí)現(xiàn)登陸,注冊(cè),驗(yàn)證碼登陸,三方登陸,一綁多的需求。朋友們?cè)诳吹臅r(shí)候,有什么問(wèn)題可以隨時(shí)評(píng)論。謝謝大家。