app登陸,注冊(cè),第三方登陸數(shù)據(jù)設(shè)計(jì)及業(yè)務(wù)流程

本片文章主要講解一下,登陸的三種方式,以及數(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 密碼
email 電子郵箱
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í)序圖:

登陸時(shí)序圖.png

四、涉及到的接口

  1. 用戶(hù)名、手機(jī)號(hào)、email+密碼登陸:

     (1)用戶(hù)名、手機(jī)號(hào)、email+密碼登陸接口
    
  2. 手機(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)證碼登陸接口
    
  3. 三方登陸:

     (1)通過(guò)三方提供的接口獲取唯一標(biāo)識(shí)和相關(guān)用戶(hù)信息(客戶(hù)端調(diào)用,與后臺(tái)無(wú)關(guān))
     (2)三方登陸接口
    
  4. 注冊(cè)

     (1)手機(jī)號(hào)+驗(yàn)證碼注冊(cè)
    
  5. 修改密碼,綁定,解除綁定

     (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)論。謝謝大家。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,160評(píng)論 25 708
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,628評(píng)論 19 139
  • 我有一個(gè)朋友。我不喜歡。 其實(shí),我也不太明白,人為什么交自己不喜歡的朋友。 是不是像吃不喜歡的飯食,總比餓著強(qiáng)。 ...
    我不怕你閱讀 175評(píng)論 0 1
  • 今天病房里很熱鬧,有個(gè)年近九十的阿婆的兩個(gè)兒子在病房里動(dòng)手打起來(lái),一個(gè)跑一個(gè)追,一個(gè)哭一個(gè)叫。 很多人的都圍在一起...
    李蘇珊閱讀 602評(píng)論 0 0
  • 朋友說(shuō):其實(shí),人真正需要的東西并不多,只是喜歡的東西太多。 芽笑:我只喜歡生活。 芽是一個(gè)“貪心鬼”。鑒定完畢! ...
    美芽?jī)?/span>閱讀 489評(píng)論 0 1

友情鏈接更多精彩內(nèi)容