為什麼 Quora 用 Facebook 或者Twitter 賬戶登錄後還要設置一個 Quora 的密碼?

直接登錄進去有什麼不好的嗎?


一般網站使用開放平台 ID 登錄,主要是看中平台上的用戶關係和基礎數據(比如 Email)。

網站(本問題里的 Quora)讓用戶設置新的獨立密碼,有以下幾個理由:

  1. 一方面獲取了用戶關係,網站(Quora)還掌握了一套完整的用戶名+密碼,這才是真正地將平台用戶轉化為自己的用戶。不必依賴/受限於平台(人人網)。
  2. 對於用戶來說,有一個優點:之後用戶可以直接輸入用戶名+密碼在 Quora 登錄,而不必再經過平台方(比如人人)的授權,縮短了登錄流程。OAuth 有過期時間,用戶再次去平台授權總是個麻煩事。
  3. 對於網站(Quora)來說,這樣避免了因為平台的 API 政策變動等因素,干擾用戶登錄。誇張一點說,如果哪天人人網被維護了,API 宕機…
  4. 但對於一些有「路徑依賴」的用戶而言,他們依然會通過平台 OAuth 登錄進入,而不是重新記憶一個新密碼。—— 但這不是 Quora 看重的點(他們有堅持的賬號策略),畢竟在兩三年前,OAuth 登錄還沒有這麼流行時,用戶在每個網站都是需要獨立密碼的。

前段時間就遇到個這樣的例子,在通過新浪微博 ID 登錄進入 http://NOP.cn 之後,自動為我生成了 sina_oxygen 這個 ID。但在註冊流程中沒有讓我設置密碼,這使得我每次都必須經過新浪 OAuth 進入,無法在 NOP 直接登錄。而在 NOP 的個人設置-修改密碼里,我就懵了,「原密碼」原本就為空,所以無法修改。

向@劉爽 小王子反應此問題,他說因為用戶有嚴重的「路徑依賴」,即使設置了密碼,用戶還是會依舊從新浪微博登錄。但這種情況下產品邏輯是不夠嚴密的,如果 NOP 不提供獨立登錄功能,可以針對新浪微博的用戶將「修改密碼」功能隱掉,至少避免產品系統內沒有可用性問題。


在那個大同的世界裡,每個良民都有一枚OpenID,於是密碼成為了歷史的沙粒。
可惜在這個世界裡,老鴇的客人始終不是自己的客人,想要有單飛的勇氣,首先得把自己的客戶關係建立好。
上面說得有點發散,具體到這個case,我個人是覺得用戶用twitter登錄進來,但不能保證他一直都用twitter,萬一哪天忘了twitter密碼或者不玩了,豈不是Quora也連帶著損失一個用戶。總之還是因為沒有一套可信賴、可依靠的第三方登錄平台。


通過第三方直接登錄的,在第一次登錄的時候,你所登錄的網站(比如Quora)會從第三方獲得一個(比如16位長)的key,會創建一個賬戶;如果不是第一次登錄的,則會查詢這個key是否存在。(不用擔心這個授權key的過期問題,除非用戶自己取消或者你的工程師sb)

如果網站想集成多個第三方,則需要做一個額外的關係表,一對多關係,這樣就能實現,你可以通過比如FBTBQQ等各種第三方登錄同一個在這個網站的真實賬戶。

真實賬戶通常是由username+password組成的,因為第三方ID的關係,讓username+password可以為空;但存在一個很大的問題,就是對第三方的依賴很高,第三方平台只會給一個用戶根本不知道的key值,而不是username+password。

裡面還有個假設,就是委託、信任第三方對用戶的驗證。一個早先的例子就是支付寶的實名驗證從他們自己去驗證到銀行卡打款;或者國外一些在線服務商的信用卡預授權。

再舉一個例子,比如樂淘,它就沒有這個獲得username+password的訴求。為什麼呢?

雖然,OpenID類的世界裡,我們需要先假設提供商是不會宕機的;但是,我們無法假設用戶是不會「宕機」的。

OAuth協議是一種技術性的協議,非產品型的協議。它是跨站授權數據的協議。

現在很多網站在集成第三方ID,因為它主要能降低普通用戶註冊的成本,能提高KPI;初始綁定後,還可以被授權往這些第三方網站里發信息流,提高粘度、知名度、擴展力,還能提高KPI。

還有一方面的原因,因為HTML協議是無狀態的協議,而現在多數網站的登錄、註冊、忘記密碼、重置郵箱等等難得使用的流程設計都普遍落伍了。

我相信,OAuth協議會還原其本來的面目,它是技術的,不是產品的,應該從前端消失回歸到後端。

So, "為什麼 Quora 用 Facebook 或者Twitter 賬戶登錄後還要設置一個 Quora 的密碼?" ---&> 這是一個很普通的,也是一個比較爛的設計。


其實這裡面還有一個邏輯問題:
我用Facebook賬戶登錄進Quora後產生一個臨時賬戶A1,然後發布一個話題X,然後退出。
我又用Twitter賬戶登錄進Quora後又產生一個臨時賬戶B1,然後發布一個話題Y。

這時,當我瀏覽我所有的話題時才發現:兩個話題被分拆到了兩個賬號里,而無法合併到一起。所以有些網站如國內的土豆,在用社交登錄後先得綁定到土豆自己的賬號上。


建議所有可以通過平台登錄的某某網站論壇把用第三方平台登錄的用戶視為臨時測試用戶,即無需再設置賬號和密碼,一段時間後清空該用戶產生的所有數據,如果喜歡這個網站,用戶可選擇和平台賬號綁定,為永久用戶。
畢竟對用戶來說:1、通過平台登錄很快捷,免去了註冊過程;2、用戶統一了賬號,身份標識一致。
如果網站非要平台登錄還要設置賬號密碼,對平台對用戶均不仁不義,打著平台入口的幌子讓用戶註冊,可恥。


Facebook 或者Twitter 賬戶登錄 大多使用的是現在的 oauth協議,但是對於 Quora本身來說並不知道這個用戶和密碼,出於後續業務的方便處理 ,可能在產品設計時要讓用戶註冊為Quora本身的用戶


推薦閱讀:

如何使用 Quora?
為什麼 Quora 上那麼多印度人?
知乎是否真如大多數人所認為的一樣不及 Quora?
Quora 會成為下一個明星嗎?

TAG:Facebook | Quora | Twitter | 開放平台 | OAuth | OpenID |