聊聊授權登錄的那些事

免费SSL证书申请

在日常使用各個APP的時候,大家應該都或多或少接觸過與“授權”有關的場景。大家有沒有想過在不需要輸入密碼賬號的情況下,是怎麼實現第三方登錄的呢?本文作者將結合自己的項目經歷來跟大家談談他所知道的授權登錄。

談到授權登錄,相信大家並不陌生,在日常使用各個APP的時候,大家應該都或多或少接觸過與“授權”有關的場景,比如:進入支付寶或微信中某個子應用時會出現的彈窗,這些都屬於授權登錄的範疇。在支付寶和微信所包含服務越來越多的情況下,這個功能給我們帶來了極大的便利。

但不知道大家有沒有想過,這種看似很正常、方便、簡單的功能,是怎麼做到在我不輸入任何賬戶密碼信息的情況下實現第三方服務賬戶登錄的,而且在登錄之後裡面的購物車、訂單記錄還都全部同步了。而且在第一次授權成功之後,後面的登錄都是直接完成的。

是因為微信或者支付寶拿到並保存了我們的賬號密碼麼?那這個算信息洩露麼?

本文我將就自己的項目經歷來談一談我所知道的授權登錄。

二、名稱解釋:什麼是授權登錄?

授權登錄是指通過一套簡單、安全的交互流程,讓第三方應用可以在不知道用戶登錄名和密碼的情況下,獲取到用戶的的對應信息,從而實現在第三方應用中的對應客戶端的登錄並關聯第三方平台賬戶。

也就是說,對於用戶來說,當你登錄了一個APP之後,你再使用這個APP上的任何第三方服務,都不需要再手動輸入一遍第三方服務對應的賬號密碼。而且在完成第一次登陸後,接下來的一段時間內用戶再使用此服務都可以實現無感知登錄。

三、需求背景:為什麼要做授權登錄?

(1)縮短用戶操作步驟,降低流失率

手動輸入賬號密碼如果作為常規的登錄方式,那麼在阻斷用戶操作流程的同時,必然也會將一部分用戶趕走,故授權登錄降低了用戶的操作成本,更容易促進用戶轉化的前提。

(2)統一接入規範,把控登錄方式

因為各應用的頁面是由第三方自己開發的,所以再風格樣式、提供服務等方面的差異,必然會導致各服務的登錄頁面也會存在著些許差異,例如:在同一個平台上,有的應用支持手機驗證碼登錄、有的支持郵箱登錄、有的甚至還支持其他平台的賬號登錄(如:微信裡面支持支付寶賬號快捷登錄),這其實是不利於整體品牌形象的營造和用戶體驗的統一的。

(3)獲取用戶信息,考慮合規要求

授權登錄在為用戶提供便利的同時還能獲取更多的信息(如:暱稱、頭像),並且授權彈窗上的用戶協議可以避免合規性風險。

(4)協議管理方便,快速簽約解約

同意授權登錄之後等於用戶跟平台簽訂了一個允許獲取指定信息的協議,故授權登錄功能必然會帶來協議管理功能,通過此功能,用戶可以快速的註銷各服務的賬號。

四、前端業務流程:授權登錄相關的業務流程

1. 授權登錄流程

  • 用戶登錄客戶端,進入第三方應用;
  • 點擊授權按鈕,客戶端喚起授權頁面;
  • 點擊“同意”授權按鈕,發起授權流程;
  • 授權成功,第三方應用賬號登錄並關聯,進行後續流程;
  • 授權失敗,提示“系統繁忙”,退出子應用;
  • 點擊“拒絕”按鈕,直接退出子應用。

2. 查看用戶授權協議

  • 客戶端協議管理列表頁;
  • 授權登錄彈窗。

3. 解除協議流程

  • 用戶登錄客戶端,進入到協議管理列表頁;
  • 選中想要解約的協議,進入到協議詳情頁;
  • 點擊“解除”授權按鈕,發起協議解約;
  • 解約成功,提示“解約成功”,回到協議管理列表頁;
  • 解約失敗,提示“解約失敗”,回到協議管理列表頁。

五、關於後端業務流程:授權登錄相關後台之間的交互

1. 簡單概括後端交互流程

  • 用戶進入第三方應用後觸發了授權彈窗,用戶同意授權後,第三方頁面於是知道了它被允許獲取用戶的相關信息了;
  • 但這個信息第三方那里肯定沒有,而因為用戶已經登錄過客戶端了,客戶端系統肯定存有,所以它需要去找客戶端要用戶信息;
  • 但在沒有經過客戶端系統允許的情況下,第三方不可能直接和客戶端系統交流,因為中間隔著彈窗(客戶端前端),所以它先讓授權彈窗去告訴客戶端系統,說想聊一聊;
  • 於是彈窗就去告訴客戶端系統,說有人想聊一聊,客戶端系統判斷了下第三方是好人之後同意了,給出了通行證;
  • 有了這個通行證之後,雙方系統之間就可以進行交流了,也就可以拿到用戶的信息了,從而實現登錄和關聯賬戶。

2. 其中必要的參數

  • code:可以看作第三方要發起授權所必須取得的通行證,有了這個通行證,雙方的服務層才能進行交互。當第三方前端調起授權彈窗時,由客戶端前端獲得後返回給第三方,第三方拿到code後,可以通過後端之間的交互去申請指令派access_token,有效期很短(可能短於5s)。
  • access_token:俗稱指令牌,由客戶端服務端鑑權中心根據code和第三方應用信息返回給第三方後端,有了指令牌,第三方就可以申請從客戶端服務器裡獲得用戶信息了,有效期一般較短(如1個小時)。
  • refresh_token:用以在access_token過期後,重新刷新指令牌的計時,有效期一般較長(如120天),超過有效期之後,整個授權登錄過程就要重新來一遍。
  • openid:用戶的唯一標識,通過openid第三方可以從客戶端服務器拿到對應用戶的賬戶信息,從而將其和自己本身的賬號進行關聯。

3. 幾種異常情況

  • 幾種必要參數過期或失效;
  • 用戶狀態異常——未註冊第三方賬號、風控黑名單等、登錄狀態異常、未簽約成功;
  • 商戶狀態異常——未簽約該產品、權限不足、第三方應用校驗不合法;
  • 授權、查詢失敗;
  • 系統服務超時或不穩定。

六、部分產品相關的考慮

1. 數據指標——注意頁面埋點

  • 原登錄頁的用戶流失率,和授權彈窗拒絕按鈕的“點擊/pv”進行對比;
  • 原登錄頁和授權彈窗的頁面停留時長進行對比;
  • 購買轉化率的前後對比。

2. 產品體驗——部分細節

  • 拒絕授權增加二次確認彈窗,引導用戶同意授權,促進用戶的業務流程和購買轉化;
  • 用戶授權協議頁面增加客服渠道入口,便於有疑問的用戶進行諮詢;
  • 建議將授權流程後置,讓用戶可以先看到子應用裡面的營銷元素再進行彈窗授權,提高轉化;
  • 傳給商戶手機號,便於第三方新用戶進行註冊時省去輸入手機號這一步;
  • 所需授予權限內容可以配置,便於其他應用進行複用,如:頭像、暱稱、手機號、郵箱等。
赞(0)
未经允许不得转载:Baiduio » 聊聊授權登錄的那些事

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Baiduio空间更快、更便利、更安全

联系我们立即注册