資料庫中使用者登入註冊使用者資訊表怎麼設計如何設計
使用者登入
站內登入:使用者資訊+密碼的驗證形式;
使用者名稱+密碼,
手機+密碼,
站外授權:第三方登入,
其實它也是使用者資訊+密碼的形式,
使用者資訊即第三方系統中的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查詢使用者資訊表獲取使用者相應的基本資訊資料。