用戶系統設計:前端設計和多平臺賬號打通(一)
用戶系統是很多產品最基礎的構成之一,但是越是基礎越是開源設計想要完善也更難。在設計用戶系統的時候,首先想到的關鍵詞是注冊和登錄。但并不是有這兩者就足夠了,更加完善用戶系統本身還需要考慮:多平臺賬號打通,同平臺賬號之間綁定與解綁,賬號安全等及需要怎樣的前端設計才是滿足這個產品本身定位和用戶操作的設計。
用戶系統的實現簡單來說有兩種方式:一是自己構建用戶系統;二是用第三方授權。第三方授權獲得的用戶信息有限且受制于人,而自己構建用戶系統研發及用戶使用成本均不如第三方授權。所以更多的是兩者并存,相互補充。
由于工作需要從0到1設計一個用戶系統,本人不是強技術型產品,所以在定義服務端字段或需求有不完善和不專業的地方,希望大家多提意見,共同完善。
一、總結需求
- 用戶系統基本注冊/登錄功能及前端頁面設計
- 多平臺賬號打通,即在單一app注冊的用戶,能夠使用此賬號登陸系統內所有app
- 用戶相對獨立,對于單一app來說用戶身份唯一
二、前端設計
登陸注冊主流設計有三種(原型如下):
1. ?賬號密碼優先
賬號密碼優先是最常見的一種登錄注冊設計,適用于普遍場景,鼓勵用戶用注冊方式登錄,有利于產品引導用戶完善更多的資料,留存自己的用戶信息。例如知乎是以賬號密碼登錄為最優先,且會隱藏第三方授權登錄?,F在的賬號密碼登錄都會以用戶注冊方式代替系統生成的userid作為賬號。純賬號密碼登錄是較為早期的設計,例如早期qq和飛信。
2. 手機號快捷登陸優先
手機號快捷登陸,也叫免密登錄/短信驗證碼登錄,適用于用戶不登錄能夠完成大部分行為,只有在某種場景下必須獲得用戶身份時才需要用戶登錄,且此時用戶的想要完成的行為是被要求登錄操作打斷的。常見的如團購類產品,用戶在應用內進行了商品的瀏覽、篩選、添加到購物車,當要進行最后一步付款操作時,發現未登錄。這時繁瑣的注冊或者登錄都有可能導致這筆訂單甚至這個用戶的流失。所以這時獲取用戶身份的方式一定要盡可能便捷。
3. 第三方授權登陸優先
第三方授權登陸,適用于對用戶資料和權限要求不高快速解約開發成本的產品。建議在應用構建用戶系統的前期可以首先接入第三方,快速的實現登錄功能。但是若想建設自身關系鏈還是需要完善自己的用戶系統。
用戶資料實際也屬于用戶系統等設計的內容。是否要增加此項的判斷原則是根據這個產品對用戶資料的需求程度決定用戶注冊時是否要增加資料填寫頁,資料填寫頁是強制阻斷性的還是可跳過的,必填的資料項有哪些,希望填的有哪些。例如是需要關系鏈的那么注冊的時候就應該強制用戶去填寫資料設置必要的昵稱和頭像,這樣的用戶對于此類應用來說才屬于有效用戶,不然在app內用戶點進資料頁,全是系統自動生成的垃圾信息,對于建設關系鏈和留存傷害較大。
交互細節上又可以延伸用戶進行注冊或登錄需要幾個步驟?這些步驟是在一個頁面上承載還是一步一個頁面以多頁面去承載?單一頁面承載的優勢是用戶能夠有很清楚的預期,他完成注冊需要進行哪些操作,但是劣勢是一個頁面承載過多信息顯得雜亂,操作的次序也會不明確;多頁面承載的劣勢是用戶對完成注冊的具體行為沒有完整預期,更容易跳出,優勢是頁面整潔并且路徑單一,能引導用戶完全按照通暢的預設路徑進行。我個人更推薦后者,因為用戶預期可以用頁碼/步驟管理用戶預期。
下面是我根據我們產品的定位和需求設計的用戶登錄/注冊系統原型:如上所說,我設計的用戶系統是需要承載多產品的,所以我設計融合賬號密碼登錄和手機號快捷登錄兩種方式,以用戶出發需要登錄的場景去切換展現在用戶面前的是哪一種。
補充一些貼心的小點:
- 申請讀取本機號碼權限,并幫用戶填寫
- 申請讀寫短信權限,獲取到驗證碼后自動填寫并點擊下一步
- 應該前置到提醒:上次登錄方式,合法的手機號,正確的圖形驗證碼等等
三、服務端設計
很多產品,特別是沒有技術背景的產品不會去接觸和設計服務端需求,實際上我自己日常工作中接觸服務端需求也并不多,并不是說產品要負責設計一個完善的用戶系統服務端,而是要學會以服務端同事能懂的方式表達清楚自己的訴求,兩邊對功能的實現不會有太多的偏差,這是產品設計服務端目的所在。
簡單的用戶系統服務端的基本功能需求為:判斷賬號身份(注冊/未注冊),賬號身份生成(新用戶分配id),賬號密碼驗證;這里要設計的并不滿足于注冊登錄,需要考慮多平臺賬號打通的用戶系統并且要和在打通情況下單一平臺或多個平臺之間,用戶的多個賬號之間綁定于解綁。
現在先說一下多平臺賬號打通需要考慮哪些問題:
- 用戶系統身份的創建,因為我們是多平臺的系統,所以用戶身份只能納入手機號注冊的用戶,若第三方授權注冊的也算用戶系統用戶,在賬號綁定的那一關則會出現混亂;
- 實現多平臺賬號打通,要實現多平臺賬號打通,即所有接入多平臺都能夠查詢到此用戶身份;
- 平臺間用戶身份獨立,要實現平臺間用戶身份獨立,則需要在用戶系統用戶身份的基礎上創建一個平臺的用戶身份。
1. 用戶系統多平臺打通
名詞解釋
- Appid:接入用戶系統時首先分配,用于區別接入的各個app;
- Unionid:用戶手機注冊時,由用戶系統根據手機號創建,在用戶系統作為用戶唯一身份標識;
- Appuserid:用戶注冊時,由app服務端根據union或者第三方授權的openid創建,在app內作為用戶唯一的身份標識。
基本原則
- 手機號作為用戶系統賬號的注冊的唯一途徑,根據手機號在用戶系統服務端創建并保存unionid;app服務端根據unionid創建并保存appuserid,且將unionid對應保存;
- 用戶系統同一unionid可對應不同的appuserid;
- 使用第三方openid授權的注冊用戶不計入用戶系統僅存在app服務端作為單app用戶,即unioid為空只生成appuserid;第三方授權包括微博微信,QQ,Facebook,Twitter。
主線流程圖:
- 手機號注冊主流程為:用戶注冊時,用戶系統服務端需要驗證手機號+驗證碼是否為真,此手機號是否已有對應unionid;若有提示已注冊,請登錄;若無創建對應unionid,app服務端根據unionid創建appuserid。至此成功生成了用戶系統身份及當前app用戶身份。
- 手機號登陸主流程為:用戶登錄時,用戶系統服務的驗證手機號+密碼是否為真,此手機號是否有對應unionid,若有,則說明此用戶有用戶系統身份。
還需要app服務端需要查詢是否有對應的appuserid,若有說明此用戶有此app身份,直接用其appuserid登錄;若無則說明是用戶系統內其他聯合app注冊用戶根據unionid創建此app的用戶身份,至此登錄成功。
用戶系統是大多數app都會有多構成,單一的用戶系統也并不那么復雜,但是若要構建產品矩陣進行多平臺間的用戶打通,加上帳號綁定與解綁,并不是一時半會能夠想清楚的需求,若大家感興趣為會繼續補充帳號綁定和賬號安全產品應該關心和設計的事情。
作者:王悠悠悠
來源:http://www.jianshu.com/p/088de40cb100
本文由 @王悠悠悠 授權發布于人人都是產品經理,未經作者許可,禁止轉載。
為啥第三方不能作為用戶系統的用戶身份標志呢?第三方登錄拿微信平臺賬號舉例可以通過UnionID做用戶唯一身份標志與綁定···
單一app啥意思
寫得非常好,收藏學習了。對于樓下朋友的問題我補充一點,它應該是歸類于第三方登錄才對
應該就不是
我的微信號是:lehuo_sun,可以交流。我自己是市場出生的產品經理,但是我自己帶了一年的技術團隊。
【1】多平臺賬號登錄,沒有這樣復雜,直接建一個公共的sesion存用戶賬號就行了。
【2】多平臺,用第三方授權登錄,綁定用戶資料關系,并不會有問題
學習了
為何不在輸入手機號過后,點擊獲取驗證碼時就 判斷該手機是否合法和是否已經注冊?
需要驗證手機號+驗證碼是否為真后再進行判斷是否已注冊,如果直接反饋手機號是否注冊會有用戶隱私泄露風險。
學習了,非常感謝!
登錄+1
學習了,雖然不是設計,不過在進行ue梳理的時候也有很多時候哭鬧頁面的擺放問題,交互這東西很是惱人啊…
lz從表單等入手講解,看過之后也大概能舉一反三了 拜謝!
ps:人人都是產品經理3群 歡迎各位小伙伴入坑,虛位以待!217321695
登錄。
挺好的,受教了,求繼續!
標題中登錄字錯了。??
不明白userid被替換?