本片文章主要講解一下魄梯,登陸的三種方式俗壹,以及數(shù)據(jù)庫的設(shè)計和業(yè)務(wù)流程的設(shè)計沽讹。
一般卑、前期準(zhǔn)備
1. 如果要支持短信驗證碼登陸:需要注冊第三方短信平臺,并研究其集成接口爽雄。
2. 如果要支持第三方登陸(如QQ蝠检,微信,微博等):需要到對應(yīng)的開放平臺進行注冊挚瘟,客戶端可以自己根據(jù)對應(yīng)平臺的集成接口進行處理叹谁,也可以用一些第三方平臺,如友盟
二乘盖、數(shù)據(jù)庫設(shè)計
1.用戶基礎(chǔ)信息表user_bases
字段名 | 描述 | ||
---|---|---|---|
id | 用戶id,自增 | ||
username | 用戶名 | ||
password | 密碼 | ||
電子郵箱 | |||
phone | 手機號 | ||
nickname | 昵稱 | ||
... | 更多的基礎(chǔ)信息 |
2.用戶認(rèn)證信息表user_auths(如果不涉及第三方登陸焰檩,不用創(chuàng)建這個表)
字段名 | 描述 | ||
---|---|---|---|
id | 自增 | ||
uid | 關(guān)聯(lián)用戶user_bases的id | ||
third_key | 三方登陸唯一標(biāo)識 | ||
third_type | 三方登陸類型(例如wx:微信,qq:QQ登陸订框,wb:微博) |
3. 說明
3.1 說一說登陸的具體處理
(1)用戶名析苫、手機號、email+密碼登陸:
直接調(diào)用接口穿扳,傳遞賬戶名和密碼衩侥,在user_bases表中查詢并匹配password(password需要做加密處理)
(2)手機號+短信驗證碼登陸,分為兩步:
a.發(fā)送驗證碼接口:客戶端:調(diào)用發(fā)送驗證碼接口矛物,攜帶手機號碼茫死。后臺:調(diào)用第三方短信平臺接口,返回驗證碼保存到redis中履羞,并添加時效峦萎。
b.客戶端收到短信驗證碼后填寫,調(diào)用驗證碼登陸接口:首先驗證驗證碼吧雹,正確的話再根據(jù)手機號查詢用戶信息骨杂。
(3)第三方登陸:
a.客戶端首先調(diào)用三方平臺提供的接口:返回唯一標(biāo)識及用戶信息(昵稱,頭像等)雄卷。
b.調(diào)用后臺提供的三方登陸接口(攜帶上步返回的數(shù)據(jù)):
首先需要在user_auths表中查詢third_key是否存在唯一標(biāo)識搓蚪,有:說明已經(jīng)創(chuàng)建了用戶,沒有:未創(chuàng)建丁鹉。
未創(chuàng)建時需要在user_auths中插入一條數(shù)據(jù)妒潭,然后再在user_auths中插入一條數(shù)據(jù)悴能。
3.2 說一說一個賬號綁定多個三方賬號的具體處理
綁定多個三方賬號的前提是:已存在一個賬號。這樣綁定三方賬號時雳灾,只需在user_auths中插入一條數(shù)據(jù)即可(對應(yīng)已存在的那個賬號)漠酿,這樣就實現(xiàn)了一對多的關(guān)系。具體看下實現(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 |...
三谎亩、時序圖炒嘲,業(yè)務(wù)流程
下圖為三種登陸方式的時序圖:
四、涉及到的接口
-
用戶名匈庭、手機號夫凸、email+密碼登陸:
(1)用戶名、手機號阱持、email+密碼登陸接口
-
手機號+短信驗證碼登陸:
(1)發(fā)送驗證碼接口 (2)調(diào)用第三方短信平臺接口(后臺直接與三方交互夭拌,與客戶端無關(guān)) (3)手機號+驗證碼登陸接口
-
三方登陸:
(1)通過三方提供的接口獲取唯一標(biāo)識和相關(guān)用戶信息(客戶端調(diào)用,與后臺無關(guān)) (2)三方登陸接口
-
注冊
(1)手機號+驗證碼注冊
-
修改密碼衷咽,綁定鸽扁,解除綁定
(1)修改密碼接口 (2)解除綁定,三方登陸接口 (3)綁定手機镶骗,三方登陸接口
說明:有些朋友可能會將三種登陸接口做成一個接口桶现,也不是不行,但個人感覺這樣代碼能顯得更獨立鼎姊,實現(xiàn)解耦巩那,也方便修改。
五此蜈、小結(jié)
以上基本就能實現(xiàn)登陸,注冊噪生,驗證碼登陸裆赵,三方登陸,一綁多的需求跺嗽。朋友們在看的時候战授,有什么問題可以隨時評論。謝謝大家桨嫁。