關於使用者系統中第三方登入的設計

我妻禮彌發表於2018-05-22


首先讓我們思考一個問題,使用者為什麼喜歡第三方登入?

1、因為沒有煩人的註冊過程

2、因為不需要記憶登入網站的密碼,只需記住第三方賬號和密碼就可以了

關於第1點,並不是所有的第三方登入都不需要註冊。

第三方登入的誕生

傳統登入

首先讓我們來看看,傳統的使用者系統是怎麼設計的。

在傳統的使用者系統中,網站會要求使用者先進行註冊。註冊的過程一般包括以下幾種情況:

1填寫使用者名稱》設定密碼》填寫其他註冊資訊。

缺點:無法獲取到使用者的關鍵資訊(郵箱、手機號等)

2填寫郵箱地址》驗證郵箱》設定密碼》填寫其他註冊資訊。

優點:可以獲取到使用者的關鍵資訊,並且使用者容易接受

3填寫手機號》驗證手機號》設定密碼》填寫其他註冊資訊。

優點:可以獲取到使用者的關鍵資訊

缺點:部分使用者反感繫結手機號,加大了註冊門檻

通過上面這三種方式註冊好後,就可以使用使用者名稱、郵箱、手機和密碼登入。其實使用 使用者名稱、郵箱、手機和密碼登入這三種登入方式可以歸納為使用使用者賬號和使用者密碼登入

這種系統有兩個缺點:

1需要事先註冊賬號

2需要要牢記該網站的賬號和密碼

其實比起第1點,第2點更讓使用者頭疼,在這個網際網路時代,每個人都註冊了大量網站賬號,很多網站對密碼的要求還不一樣,時間一長那些不怎麼用的網站的密碼很容易就忘記。

手機號加驗證碼登入

後來出現了手機號和手機驗證碼這種不需要記住密碼的登入方式。支援這種方式登入的系統一般還是會讓使用者先註冊,註冊的過程一般是

填寫手機號》驗證手機號》填寫其他註冊資訊。

這種方式雖然還是存在令使用者討厭的註冊過程,但是採用驗證碼登入後,使用者再也不需要記住密碼了。

然而,這種登入方式雖然看起來很好,但卻不得不面對一個問題,那就是繫結手機號是很多使用者反感的事情。

反感的原因通常有兩點:

1、使用者注重隱私,不想把重要的個人資訊暴露給別人

2、手機號繫結的賬號多了之後,更換手機號會特別麻煩

現在讓我們來總結一下這種登入方式的優缺點

優點:使用者不用記憶密碼

缺點:還是存在註冊過程,另外部分使用者會反感繫結手機號

那有沒有一種既不需要繫結手機號,又不用記住密碼的登入方式呢?

答案是有的,那就是第三方登入。

第三方登入

第三方登入是通過qq、微信、微博等等,第三方系統的賬戶來登入其他的系統。其他系統會在使用者登入的時候呼叫第三方的登入視窗,使用者在第三方登入後,第三方系統會返回給我們一個第三方的使用者uid,token,這個像相當於使用者名稱和密碼了。

我們可以將這個兩個值存在資料庫中當做第三方登入的使用者名稱和密碼。下次使用者在通過第三方登入的時候,我們發現這個uid我們的資料庫以及有了,就知道他是哪個使用者了。

到這裡,事情本應該解決了,但實際上問題才剛剛開始。

麻煩的第三方登入

基本流程

讓我們回憶一下自己使用過的那些可以進行第三方登入的網站或應用。

一般流程是這樣的

使用者選擇第三方登入》第三方登入成功》系統提示你還沒有註冊,讓你填寫註冊資訊》你心裡暗罵sb,我tm選擇第三方登入就是不想註冊,你這樣比直接註冊還麻煩》

最後的結果有三種

1終止註冊離開網址

2退出繫結過程,重新選擇傳統方式註冊

3忍氣吞聲完成註冊(當你選擇3後,系統會將你的第三方賬戶和你的註冊賬戶繫結,之後你既可以通過註冊的賬號登入,又可以通過第三方登入。)

雖然這種模式一直被使用者詬病,但這依然是大多數支援第三方登入網站的首選,那為什麼大多數網站第三方登入都要做成這種模式呢?

使用該模式的原因

原因有些複雜,需要你瞭解直接第三方登入的模式後才能體會其中的緣由,這裡簡單說一下。

採用這種模式的系統將第三方登入看成一種登入方式,一個使用者可以有多個登入方式,比如手機登入、郵箱登入、微博登入、微信登入、qq登入等等。

但這些都只是登入方式而已,你在登入之前,必須的有賬戶吧!而且你的賬戶必須繫結了該第三方的賬號吧,不然怎麼登入呢?

所以你在沒有賬戶時,直接通過第三方賬號去登入這種型別的網站,他會讓你先註冊一個賬戶。看起來好像是網站在套路你一樣,讓你先登入,然後又讓你註冊。實際上這種網站的第三方登入是提供給已有賬戶的使用者用的,怕他們忘記了密碼,所以給他們提供繫結第三方賬號的服務,讓他們在記不住密碼時可以通過第三方賬號來登入。

優勢及弊端

該種模式通過繫結第三方賬號,解決了使用者容易忘記本站密碼的問題。但在註冊時,會使新使用者反感。

改進方案

可以在登入介面明確指出,第三方登入是給已有賬戶且繫結了第三方賬號的人用的,這樣至少不會讓使用者在註冊時,以為你在套路他。

真·第三方登入

很多使用者都覺得上面的模式太麻煩了,就不能直接用第三方賬號登入系統嗎?當然是可以的,並且有部分網站就是這樣做的,比如簡書。

基本流程

在這種不需要提前註冊,直接可以使用第三方使用者登入的系統中,一般流程是這樣的

使用者選擇第三方登入》第三方登入成功》系統後臺判斷是否為第一次登入,如果是,就建立一個使用者。》建立使用者並登入成功

從上面的流程可以看到,這種模式將註冊流程給省略掉了,從原來的收集使用者資訊,建立使用者。變成不收集使用者資訊,直接建立使用者。

該模式使用較少的原因

你可能會覺得這種模式不是挺好的嗎,對使用者友善多了,為什麼會用的人少呢?

要回答這個問題還得從兩層面來說

系統設計層面

在前面麻煩的第三方登入那一章,我有講到,那種模式其實是將第三方登入看成使用者的一種登入方式。

·第三方登入不一樣,這種模式將第三方登入看成一個獨立的使用者。

由於沒有了註冊過程,第三方賬號第一次登入時,將無賬戶可登,這時差異出現了,麻煩的第三方登入讓使用者去註冊,·第三方登入 直接生成一個賬戶。

但是這個自動生成的賬戶只是個空殼,裡面一點有用的個人資訊都沒有。而且不像上面那種登陸方式,多個第三方賬號都是登入在同一賬戶下,這種模式下如果一個人用多個第三方賬號登陸,會生成多個賬戶。並且這幾個賬戶之間相互獨立,沒有任何關係,儘管他們都來自同一個人的。

有人可能要問了,一個人有多個賬戶有什麼影響嗎。

其實在系統設計的層面上來講,我們希望一個使用者儘量對應一個現實生活中的人(關於這個原則我會再寫一篇文章來說明) 。這樣可以降低系統的複雜性,畢竟我們的系統最終是要為人提供服務,而不是“使用者”。

那怎樣讓一個使用者儘量對應一個現實生活中的人呢?答案是在建立使用者的時候,讓系統繫結並驗證一個人的關鍵資訊,比如手機號或郵箱等。因為一個人一般也就1個手機號,最多2到3個。常用的郵箱一般也就1、2個。這這關鍵資訊基本上可以代表一個人。

這種模式下,由於沒有了註冊過程,建立使用者時,無法繫結並驗證一個人的關鍵資訊,導致一個使用者無法代表一個人

這種模式下,一個人可以輕鬆擁有多個賬戶,這將導致使用者行為分散到了多個賬戶中,增加了系統的複雜性

為什麼註冊對網站很重要,很多網站死咬著不放,原因就在這裡。

說了這麼多,總結一句話就是,這種模式下的使用者無法與現實中的人建立一對一的對映,導致使用者行為分散,系統複雜性提高(這句話可能有些難以理解,沒關係繼續往下看就知道我在說什麼)。

使用者使用層面

由於註冊門檻降低了,導致使用者十分容易就可以擁有多個賬戶,甚至說一不小心就註冊了多個賬戶。

一個人有多個賬戶本來沒什麼不可以的,但在某些情況下,會影響使用者使用產品的連貫性,造成不好的使用者體驗。

這裡的某些情況指的是:使用者在不同是時期,用不同的第三方賬號登入,進行了不同的操作,而使用者卻希望這些操作是發生在同一個賬戶下。

什麼意思?

以簡書為例,假設有以下幾種情景模式

情景1 某天,使用者第一次用qq登入簡書(這時簡書會自動建立了一個賬戶),使用者在簡書看了幾篇文章,並收藏了其中一篇文章(注意這篇文章是收藏在qq登入的賬戶下)。

情景2 一段時間後,使用者又來登入簡書了,但是這時候卻想不起來上次是用哪個第三方賬號登入的。(記不住也很正常,現在很多網站和應用都支援第三方登入,各個網站支援的還都不一樣,有的支援微博、有的支援微信、有的支援qq、還有的全都支援。網站一多,時間一長,就分不清哪個網站是用哪個第三方賬號登入的)。

這個時候使用者一般會根據記憶選擇一個第三方賬號來登入,假如這次使用者選擇的是微信登入,登入上去一看,是個新賬號,此時使用者一般會有兩種做法:

1、退出該賬號選擇其他第三方登入。此時系統白白建立了一個新賬戶。

2、新賬號就新賬號,都一樣用。

假設使用者選擇了2,然後用新號在簡書看了幾篇文章,並收藏了其中一篇文章(注意這篇文章是收藏在微信登入的賬戶下)。

情景3 一天,使用者想整理自己在簡書上收藏的文章,但卻發現,收藏的文章被分散到了幾個不同的第三方賬戶中。這時候使用者可能會抱怨說,什麼破網站,我在其他網站不管是通過哪個第三方賬號登入,都是登入到了同一個賬戶上,所有的操作也都是發生在同一個賬戶下的。

上面的情景123就是我說的“使用者在不同是時期,用不同的第三方賬號登入,進行了不同的操作,而使用者卻希望這些操作是發生在同一個賬戶下

上面出現的問題就是我說的,在某些情況下一個人擁有多個賬號時,會影響使用產品的連貫性,造成不好的使用者體驗。當然這有一個前提條件,那就是使用者本意是隻想要一個賬戶。如果使用者一開始就是衝著多個賬戶去的那當然不影響他的體驗。

說了這麼多,總結一句話就是,這種模式下容易導致使用者行為分散(收藏文章這個行為被分配到了不同的賬號中),後期如果想將分散的行為彙總會很困難(將不同第三方賬號收藏的文章彙總到一起)。

(在簡書中,如果你想將多個第三方登入產生的賬戶合併成一個賬戶,首先要使用手機號或郵箱註冊一個傳統賬戶,然後將你第三方登入的賬戶中所有發表的文章先備份到本地,然後全部刪除,還要將賬戶中的錢全部用完。之後讓系統將你的第三方賬戶徹底刪除。之後再用傳統的賬戶重新繫結第三方賬號。最後重新上傳文章。)

優勢和弊端

優勢:

沒有註冊流程,容易吸引使用者。

弊端:

模式下的使用者無法與現實中的人建立一對一的對映,導致使用者行為分散,系統複雜性提高。

改進方案

只支援單一第三方登入(比如只支援微信登入),這樣雖然還是無法讓使用者與現實中的人建立一對一的對映,但是至少使用者行為的分散程度降低了,不會像支援多個第三方賬號登入的系統那麼高

總結

目前第三方登入通常有兩種設計思路

1、將第三方登入看成一種登入方式,使用第三方登入的前提是,你先要有一個賬戶。

缺點:當使用者沒有賬戶,直接使用第三方登入時,你只能提示他先去註冊賬戶。但在使用者看來,就是欺騙,容易引起使用者的反感。

優點:當使用者賬戶繫結了第三方賬號後,使用者就在也不用記住密碼了,完全可以通過各個熟悉的第三方賬號登入系統。

2、將第三方登入,看成一個獨立的使用者

優點:沒有註冊流程,容易吸引使用者,由於是第三方直接登入,也不需要考慮使用者會忘記密碼

缺點:一個人容易產生多個賬戶,使用者的行為容易分散到多個賬戶中,增加了系統的複雜性,某些情況下還會影響使用者的產品體驗。

通篇看下來,第三方登入並沒有想象中的那麼美好,第一種方式也就僅僅解決使用者忘記密碼的問題,註冊時還會引起使用者反感。第二種方式雖然能起到吸引使用者的作用,但卻增加了系統的複雜性,某些情況下還會影響使用者的產品體驗。

所以,大家可以根據自己的實際情況,考慮是否要新增第三方登入的支援,如果要,應該使用哪種第三方登入的模式。

番外

不使用第三方登入,如何吸引使用者註冊

一句話來說就是降低註冊門檻

首先不要使用傳統的表單註冊的形式,這樣會讓使用者覺得自己在填表。(我想這世界上應該沒有人喜歡填表吧)

其實完全可以採用引導式註冊,比如:

1、註冊介面就只有一個輸入框,讓使用者輸入手機號或郵箱。

2、當使用者點選獲取驗證碼的按鈕後,UI進入到了驗證使用者的介面

3、輸入驗證碼,驗證通過後,UI進入設定密碼的介面

4、使用者設定密碼

5、夠了,前4步基本就可以拿到一個使用者最的核心資訊,其他資訊像什麼使用者名稱啊、暱稱啊完全可以用註冊時的郵箱和手機號代替,或者等使用者進入應用後再填寫,或者等後期再完善。不要想著一下子拿到使用者的所有資訊,那樣使用者只會被你嚇跑。


相關文章