1. 程式人生 > >資料庫中使用者登入註冊使用者資訊表怎麼設計如何設計

資料庫中使用者登入註冊使用者資訊表怎麼設計如何設計

使用者登入

站內登入:使用者資訊+密碼的驗證形式;

使用者名稱+密碼,

手機+密碼

站外授權:第三方登入,

其實它也是使用者資訊+密碼的形式,

使用者資訊即第三方系統中的ID(第三方登入一定會給一個在他們系統中的唯一標識),密碼即access_token,只不過是一種有使用時效定期修改的密碼。

所以我們把它分離出了 使用者基礎資訊表 + 使用者授權資訊表。

例如:

使用者資訊表 users

id               int(10)序號
nickname     varchar(20)暱稱
headimg       varchar(255)頭像

測試資料記錄:

id|nickname|headimg
1|紅中銘科技|xxx/headimg1.jpg
2|你好中國人工智慧|xxx/headimg2.jpg

--------------------------------------------------

使用者登入授權資訊表 user_auths
id                int(10)使用者序號(使用者資訊表-外來鍵user_id)                                                       
login_type    tinyint(2)登入型別(3:phone,2:email,1:uname)或(4:wechat,5:weibo)
openid         varchar(50)使用者的唯一標識(手機號號,郵箱地址,使用者名稱或第三方應用的唯一標識)
login_token   varchar(600)登入憑證(站內的儲存使用者密碼,站外的不儲存或儲存api介面的access_token憑證)

注意:資料庫欄位結構僅供參考,如有更好的建議和意見請留言!

測試資料記錄:

------------------------------------------------------------------------------------

id|user_id|login_type|openid|login_token
1|1|username|hzminc|4819db06a014cd14==>md5-bit16abc(hzminc.com)
2|1|phone|15888888888|e640626043da7f22==>md5-bit16abc(15888888888)
3|2|wechat|jm03026|SgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46

------------------------------------------------------------------------------------

以上兩條測試資料分析,兩個測試使用者,第一個使用者可以繫結賬戶登入也可以繫結手機號登陸,即可實現多方式登陸,第二使用者測是通過第三方微信介面獲得站內登入授權。

流程說明:

程式流程與程式碼實現:使用者使用 郵箱/使用者名稱/手機號+密碼登入驗證的時,則先判斷登入型別,若使用者使用了手機號為登入型別,使用 SELECT * FROM user_auths WHERE type=’phone’ and openid=’15888888888’ 查詢是否存在記錄,如有,取出並判斷資料庫中login_token是否和登入提交登入表單數值相等,相符則通過授權驗證,通過user_id查詢使用者資訊表獲取使用者相應的基本資訊資料。