聊聊授權(quán)登錄的那些事
在日常使用各個(gè)APP的時(shí)候,大家應(yīng)該都或多或少接觸過(guò)與“授權(quán)”有關(guān)的場(chǎng)景。大家有沒(méi)有想過(guò)在不需要輸入密碼賬號(hào)的情況下,是怎么實(shí)現(xiàn)第三方登錄的呢?本文作者將結(jié)合自己的項(xiàng)目經(jīng)歷來(lái)跟大家談?wù)勊赖氖跈?quán)登錄。
談到授權(quán)登錄,相信大家并不陌生,在日常使用各個(gè)APP的時(shí)候,大家應(yīng)該都或多或少接觸過(guò)與“授權(quán)”有關(guān)的場(chǎng)景,比如:進(jìn)入支付寶或微信中某個(gè)子應(yīng)用時(shí)會(huì)出現(xiàn)的彈窗,這些都屬于授權(quán)登錄的范疇。在支付寶和微信所包含服務(wù)越來(lái)越多的情況下,這個(gè)功能給我們帶來(lái)了極大的便利。
但不知道大家有沒(méi)有想過(guò),這種看似很正常、方便、簡(jiǎn)單的功能,是怎么做到在我不輸入任何賬戶密碼信息的情況下實(shí)現(xiàn)第三方服務(wù)賬戶登錄的,而且在登錄之后里面的購(gòu)物車、訂單記錄還都全部同步了。而且在第一次授權(quán)成功之后,后面的登錄都是直接完成的。
是因?yàn)槲⑿呕蛘咧Ц秾毮玫讲⒈4媪宋覀兊馁~號(hào)密碼么?那這個(gè)算信息泄露么?
本文我將就自己的項(xiàng)目經(jīng)歷來(lái)談一談我所知道的授權(quán)登錄。
一、名稱解釋:什么是授權(quán)登錄?
授權(quán)登錄是指通過(guò)一套簡(jiǎn)單、安全的交互流程,讓第三方應(yīng)用可以在不知道用戶登錄名和密碼的情況下,獲取到用戶的的對(duì)應(yīng)信息,從而實(shí)現(xiàn)在第三方應(yīng)用中的對(duì)應(yīng)客戶端的登錄并關(guān)聯(lián)第三方平臺(tái)賬戶。
也就是說(shuō),對(duì)于用戶來(lái)說(shuō),當(dāng)你登錄了一個(gè)APP之后,你再使用這個(gè)APP上的任何第三方服務(wù),都不需要再手動(dòng)輸入一遍第三方服務(wù)對(duì)應(yīng)的賬號(hào)密碼。而且在完成第一次登陸后,接下來(lái)的一段時(shí)間內(nèi)用戶再使用此服務(wù)都可以實(shí)現(xiàn)無(wú)感知登錄。
二、需求背景:為什么要做授權(quán)登錄?
(1)縮短用戶操作步驟,降低流失率
手動(dòng)輸入賬號(hào)密碼如果作為常規(guī)的登錄方式,那么在阻斷用戶操作流程的同時(shí),必然也會(huì)將一部分用戶趕走,故授權(quán)登錄降低了用戶的操作成本,更容易促進(jìn)用戶轉(zhuǎn)化的前提。
(2)統(tǒng)一接入規(guī)范,把控登錄方式
因?yàn)楦鲬?yīng)用的頁(yè)面是由第三方自己開(kāi)發(fā)的,所以再風(fēng)格樣式、提供服務(wù)等方面的差異,必然會(huì)導(dǎo)致各服務(wù)的登錄頁(yè)面也會(huì)存在著些許差異,例如:在同一個(gè)平臺(tái)上,有的應(yīng)用支持手機(jī)驗(yàn)證碼登錄、有的支持郵箱登錄、有的甚至還支持其他平臺(tái)的賬號(hào)登錄(如:微信里面支持支付寶賬號(hào)快捷登錄),這其實(shí)是不利于整體品牌形象的營(yíng)造和用戶體驗(yàn)的統(tǒng)一的。
(3)獲取用戶信息,考慮合規(guī)要求
授權(quán)登錄在為用戶提供便利的同時(shí)還能獲取更多的信息(如:昵稱、頭像),并且授權(quán)彈窗上的用戶協(xié)議可以避免合規(guī)性風(fēng)險(xiǎn)。
(4)協(xié)議管理方便,快速簽約解約
同意授權(quán)登錄之后等于用戶跟平臺(tái)簽訂了一個(gè)允許獲取指定信息的協(xié)議,故授權(quán)登錄功能必然會(huì)帶來(lái)協(xié)議管理功能,通過(guò)此功能,用戶可以快速的注銷各服務(wù)的賬號(hào)。
三、前端業(yè)務(wù)流程:授權(quán)登錄相關(guān)的業(yè)務(wù)流程
1. 授權(quán)登錄流程
- 用戶登錄客戶端,進(jìn)入第三方應(yīng)用;
- 點(diǎn)擊授權(quán)按鈕,客戶端喚起授權(quán)頁(yè)面;
- 點(diǎn)擊“同意”授權(quán)按鈕,發(fā)起授權(quán)流程;
- 授權(quán)成功,第三方應(yīng)用賬號(hào)登錄并關(guān)聯(lián),進(jìn)行后續(xù)流程;
- 授權(quán)失敗,提示“系統(tǒng)繁忙”,退出子應(yīng)用;
- 點(diǎn)擊“拒絕”按鈕,直接退出子應(yīng)用。
2. 查看用戶授權(quán)協(xié)議
- 客戶端協(xié)議管理列表頁(yè);
- 授權(quán)登錄彈窗。
3. 解除協(xié)議流程
- 用戶登錄客戶端,進(jìn)入到協(xié)議管理列表頁(yè);
- 選中想要解約的協(xié)議,進(jìn)入到協(xié)議詳情頁(yè);
- 點(diǎn)擊“解除”授權(quán)按鈕,發(fā)起協(xié)議解約;
- 解約成功,提示“解約成功”,回到協(xié)議管理列表頁(yè);
- 解約失敗,提示“解約失敗”,回到協(xié)議管理列表頁(yè)。
四、關(guān)于后端業(yè)務(wù)流程:授權(quán)登錄相關(guān)后臺(tái)之間的交互
1. 簡(jiǎn)單概括后端交互流程
- 用戶進(jìn)入第三方應(yīng)用后觸發(fā)了授權(quán)彈窗,用戶同意授權(quán)后,第三方頁(yè)面于是知道了它被允許獲取用戶的相關(guān)信息了;
- 但這個(gè)信息第三方那里肯定沒(méi)有,而因?yàn)橛脩粢呀?jīng)登錄過(guò)客戶端了,客戶端系統(tǒng)肯定存有,所以它需要去找客戶端要用戶信息;
- 但在沒(méi)有經(jīng)過(guò)客戶端系統(tǒng)允許的情況下,第三方不可能直接和客戶端系統(tǒng)交流,因?yàn)橹虚g隔著彈窗(客戶端前端),所以它先讓授權(quán)彈窗去告訴客戶端系統(tǒng),說(shuō)想聊一聊;
- 于是彈窗就去告訴客戶端系統(tǒng),說(shuō)有人想聊一聊,客戶端系統(tǒng)判斷了下第三方是好人之后同意了,給出了通行證;
- 有了這個(gè)通行證之后,雙方系統(tǒng)之間就可以進(jìn)行交流了,也就可以拿到用戶的信息了,從而實(shí)現(xiàn)登錄和關(guān)聯(lián)賬戶。
2. 其中必要的參數(shù)
- code:可以看作第三方要發(fā)起授權(quán)所必須取得的通行證,有了這個(gè)通行證,雙方的服務(wù)層才能進(jìn)行交互。當(dāng)?shù)谌角岸苏{(diào)起授權(quán)彈窗時(shí),由客戶端前端獲得后返回給第三方,第三方拿到code后,可以通過(guò)后端之間的交互去申請(qǐng)指令派access_token,有效期很短(可能短于5s)。
- access_token:俗稱指令牌,由客戶端服務(wù)端鑒權(quán)中心根據(jù)code和第三方應(yīng)用信息返回給第三方后端,有了指令牌,第三方就可以申請(qǐng)從客戶端服務(wù)器里獲得用戶信息了,有效期一般較短(如1個(gè)小時(shí))。
- refresh_token:用以在access_token過(guò)期后,重新刷新指令牌的計(jì)時(shí),有效期一般較長(zhǎng)(如120天),超過(guò)有效期之后,整個(gè)授權(quán)登錄過(guò)程就要重新來(lái)一遍。
- openid:用戶的唯一標(biāo)識(shí),通過(guò)openid第三方可以從客戶端服務(wù)器拿到對(duì)應(yīng)用戶的賬戶信息,從而將其和自己本身的賬號(hào)進(jìn)行關(guān)聯(lián)。
3. 幾種異常情況
- 幾種必要參數(shù)過(guò)期或失效;
- 用戶狀態(tài)異?!醋?cè)第三方賬號(hào)、風(fēng)控黑名單等、登錄狀態(tài)異常、未簽約成功;
- 商戶狀態(tài)異常——未簽約該產(chǎn)品、權(quán)限不足、第三方應(yīng)用校驗(yàn)不合法;
- 授權(quán)、查詢失??;
- 系統(tǒng)服務(wù)超時(shí)或不穩(wěn)定。
五、部分產(chǎn)品相關(guān)的考慮
1. 數(shù)據(jù)指標(biāo)——注意頁(yè)面埋點(diǎn)
- 原登錄頁(yè)的用戶流失率,和授權(quán)彈窗拒絕按鈕的“點(diǎn)擊/pv”進(jìn)行對(duì)比;
- 原登錄頁(yè)和授權(quán)彈窗的頁(yè)面停留時(shí)長(zhǎng)進(jìn)行對(duì)比;
- 購(gòu)買(mǎi)轉(zhuǎn)化率的前后對(duì)比。
2. 產(chǎn)品體驗(yàn)——部分細(xì)節(jié)
- 拒絕授權(quán)增加二次確認(rèn)彈窗,引導(dǎo)用戶同意授權(quán),促進(jìn)用戶的業(yè)務(wù)流程和購(gòu)買(mǎi)轉(zhuǎn)化;
- 用戶授權(quán)協(xié)議頁(yè)面增加客服渠道入口,便于有疑問(wèn)的用戶進(jìn)行咨詢;
- 建議將授權(quán)流程后置,讓用戶可以先看到子應(yīng)用里面的營(yíng)銷元素再進(jìn)行彈窗授權(quán),提高轉(zhuǎn)化;
- 傳給商戶手機(jī)號(hào),便于第三方新用戶進(jìn)行注冊(cè)時(shí)省去輸入手機(jī)號(hào)這一步;
- 所需授予權(quán)限內(nèi)容可以配置,便于其他應(yīng)用進(jìn)行復(fù)用,如:頭像、昵稱、手機(jī)號(hào)、郵箱等。
本文由 @月半小閣 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自 Pexels,基于 CC0 協(xié)議
不錯(cuò)不錯(cuò),雖然簡(jiǎn)單,但是一些要點(diǎn)都寫(xiě)進(jìn)去了。
不像有些寫(xiě)了半天,都是流水賬
hello,請(qǐng)問(wèn)下,“ 產(chǎn)品體驗(yàn)——部分細(xì)節(jié)” 里的第4點(diǎn):“傳給商戶手機(jī)號(hào)”這個(gè)是這么實(shí)現(xiàn)呢
還不錯(cuò),mark先
手動(dòng)輸入賬號(hào)密碼如果作為常規(guī)的登錄方式,那么在阻斷用戶操作流程的同時(shí),必然也會(huì)將一部分用戶趕走,故授權(quán)登錄降低了用戶的操作成本,更容易促進(jìn)用戶轉(zhuǎn)化的前提?!詈笠痪錄](méi)太理解
挺好
真好