多平臺統一用戶系統設計

0x00 引言

如今愈來愈多的產品都實現了在不一樣平臺上的功能支持。好比原來的 App 爲了微信上的流量,開發了小程序。原來只作微信公衆號的,後來爲了更好的體驗開發了 App 等等。這裏面臨用戶帳號遷移的問題。對於用戶來說,但願原來一個平臺上的帳號,在另一個平臺也能直接使用,而不須要從新註冊。對於企業來說,原來平臺上的用戶使用了新的平臺,也但願可以識別是同一用戶,對用戶的分析能夠更精確,從而帶來一致的體驗。html

可是不少系統在開發初期沒有作出有足夠擴展的設計,在後續業務擴大的時候又急急忙忙,致使多平臺統一用戶的目標很難實現,形成不少意想不到的問題。數據庫

這篇文章裏面我將說明一個本身的方案。從功能、數據表設計、接口設計三部分展開。可以在系統構建之初就爲將來的需求提供足夠擴展的可能。小程序

0x01 多平臺統一用戶相關功能

系統中用戶部分最基礎的功能,包括註冊,登陸,綁定/解綁。下圖中涵蓋了市面上能看到幾乎全部方式。安全

因爲微信實在太過強大,基於微信平臺上的子類型也須要考慮。微信

多平臺統一用戶註冊/登陸功能

0x02 數據庫表結構設計

表結構的核心在於用戶主表和平臺用戶表。用戶主表對內,主要用於系統內部使用。平臺用戶表,則做爲第三方平臺與系統內部打交道的通道。系統的複雜度就只在於這兩張表之間的邏輯了。spa

注意:用戶表設計未考慮到足夠的安全策略。正確的方式是須要對密碼進行加鹽Hash保護設計

表結構設計

0x03 相關請求接口

圖示中的接口,在設計時考慮了兩點:htm

  1. 接口返回用戶信息時以有時效的 token 做爲用戶標識。能夠在必定程度上實現接口的保護。
  2. 其餘須要用戶信息的接口,經過 token 參數在服務端獲取到真正的用戶ID,再進行操做。

相關請求接口

0x04 最後

以上就是多平臺統一用戶系統的設計要點。對於系統的快速起步開發已經足夠了,也不須要擔憂將來擴展平臺的問題。blog

打好基礎,之後事半功倍。token

獲取思惟導讀源文件,請加QQ羣:429039234

長按識別二維碼

相關文章
相關標籤/搜索