微信、QQ、新浪微網誌等第三方登入,你想知道的都在這了(上):https://www.jianshu.com/p/133d84042483
微信、QQ、新浪微網誌等第三方登入,你想知道的都在這了(下):https://www.jianshu.com/p/e2636421eba5
微信、QQ、新浪微網誌等第三方登入,你想知道的都在這了(上):
在主流的APP中,微信快捷登入已經成為了登入體系的标配,我們越來越習慣不去記憶密碼,而是點選跳轉到微信,再點選授權進入到APP中。

我們把這類通過第三方授權授權來登入自家産品的方式,統稱為第三方登入。
但是有沒有好奇,為什麼點選一下授權,就完成了登入,如此神奇的功能背後的産品邏輯是什麼?
嗯,本文就是來解答你的這個疑惑的,圍繞第三方登入,講清三件事情。
1.是什麼?
· 第三方登入的本質是什麼?
2.為什麼?
· 産品為什麼加入這些第三方登入的方式呢?
3. 怎麼辦?
· 如果産品想加入第三方登入,該如何申請?
· 多端(web、wap和app等)之間如何打通三方登入?
一、三方登入是什麼
1.第三方登入的實質
第三方登入的實質,就是在OAuth2.0協定的基礎上,利用外部的辨別來擷取帳号的内部辨別然後完成登入的過程。
具體的講,就是将三方的帳号綁定到産品自身的帳号上,當查詢到使用者第三方的帳号已經綁定了平台的某個user_id時,直接登入對應的帳号。
2.了解幾個概念
我估計你可能被上面的專業名詞繞暈了,為了幫助你了解及友善下文講述流程,下面先來理清下幾個概念。
放心,其實很簡單,不要被這些陌生的詞彙吓到了:)
1)外部辨別
用來使用使用者身份的标志,可以是使用者名,手機号,郵箱等,每一個外部辨別一定和一個内部辨別相關聯用以确定一個使用者。
需要注意的是,外部辨別可能改變,例如小明12年用的是手機号A,17年用的是手機号B,在APP内更改了登入的手機号,就完成了外部辨別的改變。
是以,外部辨別的作用有兩個
1. 讓使用者通過自己熟知且占有的外部辨別來登入産品
2. 可以通過校驗外部辨別來實作找回或轉移資料資産(使用者注冊帳号後使用産品過程中産生的所有資料,例如在微信,資料資産是你的好友,曆史聊天記錄,所發的朋友圈;而在遊戲中是你的遊戲角色,擁有的裝備,好友等)
2)内部辨別
即産品中用于辨別使用者唯一性的标志,例如user_id,必須有,不可更改且唯一,使用者一般接觸不到内部辨別。
當一個内部辨別建立後,使用者所有的資料資産都會綁定到這個内部辨別上。
3)user_id
一個常用的内部辨別,類似你的18位身份證ID
4)app_id
用于差別不同APP的ID,具有唯一性。
5)open_id
第三方平台為了使用者資訊的安全,一般不會直接将使用者的内部辨別給到其他産品,而是選擇了給一個外部辨別,這個open_id就是微信給各個APP用以區分微信使用者身份的外部辨別
需要注意的是,即使是同一個使用者,微信給不同的APP的open_id也是不同的,這會導緻一個問題。
例如我有兩款産品,一款美團,一款美團外賣。
對微信而言,這是兩個app_id,是以當使用者授權美團使用微信資訊後,微信給的是open_id_1,使用者再來到美團外賣公衆号,這時候還要再授權一次,微信給的是open_id_2。
但實際上在美團的帳号體系中,這都是同一個使用者,卻綁定了兩個open_id,可能導緻使用者注冊了兩個帳号,資料不會互通,這顯然是有問題的。
如何解決?往下看
6)union_id
為了解決上面的問題,union_id誕生了。
不同的産品的可以使用同一個union_id來确認使用者的身份。
對于使用同一套使用者資料的不同産品,可以向微信申請union_id,當A産品獲得了使用者授權後,拿到該使用者的union_id,這時候再使用B産品再進行授權後,發現這是同一個union_id,直接登入之前的帳戶,避免了同個微信使用者注冊了兩個帳号資料不同步的問題。
7)access_token
可以了解為通行證,有了這個通行證,就能擷取到第三方平台指定使用者的有限資訊。
8)OAuth 2.0
這個不太容易解釋,我們簡單的了解為授權的通用協定
為什麼需要這個,我們假設這樣一個場景
假設你是做電商的,一位快遞天天都需要上門到你家取件,但是你居住的小區是有門禁的,進入小區的方式有兩種
1.利用你家的門禁卡(這個門禁卡能打開小區門和你家的電子門)
2.利用小區的臨時門禁卡進入
這兩種方式, 顯然第二種是更安全的,因為快遞小哥隻需要有臨時卡進入小區,然後到你家按門鈴,你再傳遞快遞給他就好。而直接将你家的門禁卡給他,顯然不理智。
現實中的例子很好了解,那麼在第三方登入中也是如此
APP → 快遞小哥
第三方應用 → 你家
使用者資訊 → 快遞件
第三方應用平台下使用者的帳号和密碼 → 你家的門禁卡
Token → 小區臨時門禁卡
APP(快遞小哥)需要從第三方應用那拿到你的資料(快件),顯然第三方應用不可能把帳号和密碼(你家的門禁卡)給APP,這時候提供一個Token(臨時的小區門禁卡),讓APP既能擷取到你的使用者資訊(快件),又保證了安全。
第三方登入的時序圖
好了,理清了上面的基礎概念和了解了第三方登入的實質,再講講産品加入第三方登入有哪些好處。
二、為什麼需要加入第三方登入
1. 提高登入轉化率,登入更加快捷,不需要輸入密碼
在PC時代,登入不同的網站,為了避免網站被攻擊後導緻的使用者資料洩露,自己會将網站分類,不熟的網站使用密碼A,常用的網站使用密碼B,重要的網站用密碼C,極其重要的幾個網站單獨用密碼DEF等等,但是記憶起來很費事。
到了移動網際網路時代,幾大第三方平台已經成為了人手必備了産品了,特别是微信,簡直可以看成移動網際網路的使用者身份證。
産品接入了第三方登入後,使用者跳轉到第三方應用,直接在授權頁面點選授權即可進入産品,免去了輸入密碼的環節,能提高登入的轉化率。
2. 提高注冊轉化率,注冊更加快速,友善擷取使用者資訊
第三方登入能簡化注冊流程,快速擷取到使用者資訊,例如頭像,昵稱,性别,所在城市等等,讓使用者減少了資訊填寫的步驟,能更快的使用産品。
以微信小程式為例,對于不需要自建帳号體系的産品來說,有了微信授權後,僅僅需要點選一次“允許”就完成了帳号的注冊,産品也能直接擷取到使用者的一系列資訊,使用者體驗極好。
如果對比還不夠清晰,将傳統注冊流程和微信授權的流程列出後,就會發現,原本需要花8個步驟3-5分鐘完成的事情,微信授權不到5S就完成了。
可見第三方登入對于提供注冊轉化率是有很大幫助的。
3. 信賴感
當我在大學期間,浏覽一個陌生網站時,一旦需要登入,看到QQ登入的時候,心中總會突然出現一絲的信賴感。
因為在我已有的觀念中,這個陌生的網站居然和QQ這個我異常熟悉的夥伴達成了“合作”(後來自己做産品才知道,QQ開放平台,隻要你申請通過了接入。。。),心裡對這個網站的戒備心裡就會少很多。
但為什麼我會有這種心理呢?
我們願意相信自己熟悉的人和物對陌生的事物進行的背書
這其實非常好了解,如果你有個鐵哥們的小明,小明也認識小紅,在兩種場景下
一種,你初識小東,但是小明不在場或者小明不認識小紅;
另一種,你初識小東,但是小明在場,和你說小紅我認識了10年的朋友啊
你是否對小東的信賴感瞬間上來了,因為這是你鐵哥們小明對小紅的背書啊,第二種方式下,你容易對小明産生信奈感。
是以,有三方登入的産品,讓使用者覺得這個産品和大廠是有合作的,提高對産品的信賴感,最終能實作提高産品的登入和注冊轉化率。
呼,看到這裡,你應該理清了概念,知道了第三方登入的實質以及為什麼需要接入第三方登入了,那麼重點來了——産品如何申請第三方登入,第三方登入的流程又是怎樣,以及有哪些注意事項?
篇幅原因,下篇見《微信、QQ、新浪微網誌等第三方登入,你想知道的都在這了(下)》
微信、QQ、新浪微網誌等第三方登入,你想知道的都在這了(下):
第三方登入的下篇奉上,姗姗來遲。
上文連結:微信、QQ、新浪微網誌等第三方登入,你想知道的都在這了(上)
在上文中,我們了解了第三方登入是什麼及為什麼需要第三方登入,下面講講實作的流程。
三、如何建立完善的第三方登入體系
1.申請流程
目前市面上的第三方開放平台屈指可數,基本都是BAT級才會去做這種事情,我們以常見的微信,騰訊QQ和新浪微網誌三家,簡單講下具體申請流程。
1)微信
微信開放平台:https://open.weixin.qq.com
1. 注冊一個開放平台的帳号(用公司共用郵箱,别用自己的,否則離職容易有糾紛)
2. 進入【管理中心】,建立應用送出稽核,擷取AppID(稽核時間3個工作日内)
一個帳号最多可以建立送出10個應用,非常夠用啦
3. 擷取到AppID後,就可以拿着“AppID”和“微信開放平台的開發者文檔”跑去和開發哥哥溝通具體的接入了。
具體的實作方式中的code,access_token等你不了解沒有關系,研發同僚根據文檔實作起來基本沒問題。産品最主要還是要關注整體的流程。
另外,值得一提的是,需要提醒研發同僚,使用UnionID作為使用者的唯一辨別而非OpenID。
2)騰訊開放平台
1. 注冊騰訊開放平台專用QQ
2. 完善個人資訊或公司資訊
3. 建立應用,送出稽核
注意!!騰訊開放平台的邏輯比較奇葩,android和iOS分别需要送出兩次,web端的更是需要在另一個平台建立送出應用
4.1 建立android和iOS應用
首先先建立一個android的應用,再點選右上角的iOS應用,再次送出iOS的資訊,這樣就能保證iOS和android用的是同一個APP ID。
如果分别在android和iOS應用建立應用,會生成兩個APP ID,需要非常注意!
4.2 建立網站應用
建立網站應用不能直接在開放平台中建立,需要需要移步到QQ互聯。
網站應用即在PC網站内或移動端網站内使用第三方登入,而開放平台中的網頁應用指的是接入到QQ空間,朋友網和3366網站中,提供第三方的軟體服務。
兩者是不同的,需要特别注意,這裡我們需要的是網站應用。
騰訊互聯:https://connect.qq.com/index.html
4.2.1 注冊騰訊騰訊互聯專用QQ
4.2.2 完善個人資訊或公司資訊
4.2.3 建立網站應用,擷取APPID
5. 申請UnionID
如果要實作web端應用,iOS和android應用在提供了第三方登入功能後,能夠識别同一個使用者,則需要使用到UnionID,目前騰訊的UnionID是沒有直接開放,需要單獨申請的。
申請的方式檢視騰訊給的常見問題解答,下載下傳好申請表格,待應用稽核通過了,郵件申請多個已稽核通過的應用互相打通,擷取統一的UnionID(稽核速度很快,半天就下來了)。
6. 将擷取到的UnionID,各個端的APP ID,騰訊開放平台的開發者文檔及QQ互聯的開發者文檔整理好,送出給研發同僚,就能進行開發了。
說個題外話
上面大家也注意到了,和微信開放平台的相比,騰訊開放平台不但繁瑣,而且web端和移動端使用居然還是不同的網站,并且一開始沒有提供UnionID,需要單獨申請。
猜想是騰訊自家的産品内部利益沒有處理好,留下了曆史的爛攤子,讓開發者接入的時候變得繁瑣,大公司的有大公司病
3)新浪微網誌
新浪微網誌開放平台:http://open.weibo.com/
吐槽下,和微信及騰訊開放平台相比,新浪微網誌的開發平台仿佛沒爹疼沒娘愛,疊代做的很差,很多已下線的功能頁面都沒有相應的調整,誤導使用者;頁面點選各種無響應亂跳轉:)
1. 注冊一個新浪微網誌,登入新浪開放平台
2. 送出資料認證完善開發者資訊
3. 建立應用,擷取App Key(我當時送出1個工作日内就稽核過了)
4. 将拿到的App Key及新浪微網誌開發者文檔郵件給到研發同僚即可。
應用未稽核通過前,就可以先用已拿到的App Key進行開發,不影響開發進度。
2.産品業務流程
上述的各種ID準備完全後,實作上就交給萬能的研發哥哥了,但是産品的業務流程還是需要産品狗們親自梳理下的。
由于自有的帳号體系比較複雜,我們主要來探讨下自有産品體系的三方登入怎麼做,這裡以原有手機号帳号體系,後續加入第三方登入為例,簡單講下。
1)主線流程-平台帳号已綁定第三方帳号
正常的使用者路徑中
從登入頁面點選進入第三方登入 > 通過第三方授權成功 >判斷第三方帳号已綁定了平台的帳号
> 已綁定平台帳号 > 登入成功
但是第三方登入功能上線的時候,帳号都是沒有綁定第三方帳号的,于是支線流程1 粗線了
2)支線流程1-未綁定第三方帳号-帳号已注冊
第三方帳号未綁定平台的帳号 > 綁定流程 > 已綁定平台帳号 > 登入成功
再考慮到綁定的過程中,使用者可能沒注冊過帳号,于是支線流程2 出來了
3)支線流程2-未綁定第三方帳号-帳号未注冊
綁定流程 > 注冊流程 > 已綁定平台帳号 > 登入成功
再綁定過程中,再考慮到其他異常狀況,例如申請綁定的平台帳号之前已經綁定了其他的第三方帳号,又或者注冊的時候,發現手機号已經被注冊但有一段時間沒有使用了(可能是營運商二次放号)等異常情況,于是又有分支流程3和分支流程4出來
4)支線流程3-未綁定第三方帳号-帳号已注冊-第三方帳号已被綁定
綁定流程 > 第三方帳号已綁定平台其他帳号 > 确認解綁 > 重新綁定 > 已綁定平台帳号 > 登入成功
5)支線流程4-未綁定第三方帳号-帳号已注冊-帳号疑似二次放号-重新注冊
綁定流程 > 疑似二次放号 > 确認未注冊 > 重新注冊 > 已綁定平台帳号 > 登入成功
其中分支流程3和4非必須,特别是帳号二次放号的檢測,有多種檢測方式,應根據各家産品自身的特點衡量是否需要做,同時分支流程在不同的産品上也不盡相同,産品需要衡量投入産出,确定顆粒度。
3.注意事項
1) 有多個産品時一定要使用UnionID
如果多個産品是共用一套帳号體系的,一定要使用UnionID
· 微信本身就有UnionID,使用的時候注意和OpenID的差別;
· 騰訊開放平台需要特别申請UnionID,各管道的應用稽核通過後送出郵件申請,很快就能審批下來;
· 新浪微網誌可以了解為本身用的就是UnionID,不需要特别申請。
2)産品邏輯上如何避免二次放号的問題?
二次放号(手機号曆史已注冊,後營運商回收後再次注冊的問題)是帳号體系一直以來的痛!這個問題的解決辦法詳見《5千字幹貨——解決手機号二次使用導緻的帳号問題》。
3)第三方帳号體系和自建帳号體系,如何抉擇?
兩者沖突嗎?其實并不沖突,但并非所有的産品都需要自建帳号體系,篇幅問題,這裡先給自己挖個坑,歡迎關注“朱利安”的簡書,我在後續将會解答《自建帳号體系和第三方帳号體系,如何抉擇?》
第三方登入的上篇連結:微信、QQ、新浪微網誌等第三方登入,你想知道的都在這了(上)
作者:朱利安_AI産品經理
連結:https://www.jianshu.com/p/e2636421eba5
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。