第三方登錄數據庫設計以及業務數據流向說明


用戶可以通過注冊的手機帳號登錄,也可以通過第三方登錄(QQ、新浪微博、微信),手機帳號可以綁定第三方帳號,第三方帳號也可以綁定手機帳號。

這里設計兩張數據庫表,一張是賬號表,用來存儲手機注冊的帳號,或者第一次通過第三方登錄之后,默認生成的帳號信息,另一張表是第三方帳號綁定關系表。

表結構如下(只暫時基礎的字段):

user表(帳號表)

userid   varchar(64),// 用戶編號GUID,主鍵

username varchar(64),// 用戶姓名

register_type int ,// 帳號生成類型,手機注冊、QQ、微信、新浪微博

u_qq_key  varchar(64),// 第三方登錄QQ的唯一標識

u_wx_key  varchar(64),// 第三方登錄微信的唯一標識

u_xlwb_key varchar(64)// 第三方登錄新浪微博唯一標識

 

thirdlogin(第三方登錄帳號關聯表)

thirdguid  varchar(64),// 主鍵GUID

userid      varchar(64),// 用戶帳號GUID,外鍵

third_key  varchar(64)// 第三方登錄唯一標識

 

業務數據流向:

第三方登錄

例如QQ登錄,默認在user表中插入一條記錄,register_type為QQ,u_qq_key為第三方QQ登錄生成的唯一標識,同時在thirdlogin表中插入一條記錄,userid為user表生成帳號的userid,third_key為第三方登錄的唯一標識,其他第三方登錄帳號類似。

 

首次注冊手機帳號:

在user表中插入一條記錄,register_type為手機,thirdlogin表不用操作

 

第三方帳號綁定手機帳號(以QQ帳號為例):

1)首先第三方帳號只能綁定手機帳號,不會存在直接的第三方帳號之間綁定,例如qq綁定新浪微博,這是不存在的。

2)第三方帳號未綁定手機帳號之前,使用第三方帳號登錄,進入系統之后可以提示綁定手機帳號,綁定手機帳號需要把thirdlogin表中的之前的QQ帳號生成的那條記錄的userid替換成綁定的手機帳號的userid,然后android系統的數據切換到綁定的手機帳號的數據上。

這個時候會存在一個情況,就是如果之前是第三方QQ帳號的信息都沒有了,顯示的都是新的手機帳號的數據。

3)如果需要看之前的第三方qq登錄的時候數據信息的時候,需要解除綁定,然后用第三方qq登錄之后查看。

 

手機帳號登錄:

1)如果手機帳號之前未綁定第三方帳號:綁定qq帳號,假設這個qq帳號已經被其他手機帳號綁定過了,那么需要提示一下,但是依然可以繼續綁定(因為具有該qq的操作權限),綁定之后,需要把thirdlogin表中的之前的QQ帳號生成的那條記錄的userid替換成綁定的手機帳號的userid,如果之前沒有用第三方帳號登錄過,那么需要插入一條thirdlogin表中的記錄。

2)如果第三方帳號已經綁定了手機帳號,那么用第三方帳號登錄的時候,會自動關聯手機帳號,實際上相當於使用的手機帳號登錄。

3)解除第三方綁定,可以把third表中的第三方帳號的關聯記錄中的userid清空。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM