Uber 是全球最大的共乘公司,除了載送數百萬名乘客前往目的地,也提供餐點外送、醫療運輸和貨運物流服務。Uber 成功的關鍵在於提供簡單的存取方式。使用者更換新裝置時,希望不必重新登入 Uber 應用程式,或透過簡訊進行動態密碼驗證,就能順暢轉移。這種頻繁更換裝置的現象既是挑戰,也是提高使用者留存率的契機。
為了維持使用者連續性,Uber 工程師採用還原憑證功能。在美國,每年有 40% 的人會更換智慧型手機,因此這項工具至關重要。在評估使用者需求和程式碼原型設計後,他們在 Uber 乘客應用程式中導入 Restore Credentials 支援。為了驗證還原憑證有助於消除重新登入的阻礙,Uber 團隊成功進行了為期五週的 A/B 實驗。這項整合功能減少了手動登入次數,以 Uber 龐大的使用者族群來推算,預計每年可減少 400 萬次手動登入。
使用還原憑證消除登入阻礙
過去曾嘗試使用一般資料備份和 BlockStore 等解決方案,在新裝置上還原帳戶,但這兩種解決方案都需要直接從來源裝置將驗證權杖分享至目標裝置。由於權杖資訊高度敏感,這些解決方案僅在一定程度上使用,用於預填目標裝置上的登入欄位,並減少登入流程中的一些摩擦。密碼金鑰也是一種安全快速的登入方式,但由於需要使用者主動操作,因此對裝置無縫轉換的影響有限。
Uber 的 Android 工程師 Thomás Oliveira Horta 表示:「有些使用者不會每天使用 Uber 應用程式,但他們希望在需要時能正常運作。「當你打開新 Android 手機上的應用程式,準備叫車時,卻發現自己登出了,這可能會讓人感到不愉快、不舒服。」
有了還原憑證,工程師就能解決這個問題。API 會在舊裝置上產生專屬權杖,並在使用者於標準新進人員訓練程序中還原應用程式資料時,順暢且不著痕跡地移至新裝置。這項程序會運用 Android 作業系統的原生備份與還原機制,確保還原金鑰和應用程式資料安全轉移。這種精簡做法可確保帳戶轉移過程簡單安全,符合 Uber 的安全規定,且不需使用者額外輸入資料或增加開發負擔。
注意:還原金鑰和密碼金鑰使用相同的基礎伺服器實作。不過,將這些資料儲存在資料庫時,您必須加以區分。這項區別至關重要,因為使用者建立的密碼金鑰可由使用者直接管理,而還原金鑰則由系統管理,不會顯示在使用者介面中。
Thomás 表示:「在 Uber 乘客應用程式中採用還原憑證後,我們發現使用率穩定成長。「在目前的推出階段,平均每天有 10,000 名不重複使用者透過還原憑證登入,並在新裝置上首次開啟應用程式時,享有流暢的體驗。我們預計,一旦向全體使用者族群推出這項功能,這個數字將翻倍。」
導入注意事項
Thomás 表示:「我們按照程式碼範例和說明文件,對 Android 端進行微調,輕鬆完成整合。「我們的應用程式已使用 Credential Manager 處理密碼金鑰,後端只需進行幾項小調整。因此,我們只需要將 Credential Manager 依附元件更新至最新版本,即可存取新的 Restore Credentials API。我們透過相同的密碼金鑰建立流程建立還原金鑰,當應用程式在新裝置上啟動時,會嘗試在背景擷取密碼金鑰,主動檢查是否有這個金鑰。如果找到還原金鑰,系統會立即使用該金鑰自動登入使用者,略過任何手動登入程序。
在開發過程中,Uber 工程師在實作時克服了幾項挑戰,包括選擇合適的進入點,以及在後端管理憑證生命週期。
選擇還原憑證進入點
工程師在選擇 用於復原的還原憑證進入點時,仔細權衡了完美流暢的使用者體驗和實作簡易性之間的取捨。最後,他們優先選擇了能達到理想平衡的解決方案。
Thomás 表示:「這項作業可在應用程式啟動期間進行,或在裝置還原和設定期間,透過 BackupAgent 在背景執行。「背景登入進入點對使用者來說更流暢,但背景作業會帶來挑戰,且需要使用 BackupAgent API,這會增加 Uber 龐大程式碼集的複雜度。」他們決定在首次啟動應用程式時實作這項功能,這比手動登入快得多。
解決伺服器端難題
與後端 WebAuthn API 整合時,伺服器端出現了一些問題,因為其設計假設一律需要使用者驗證,且所有憑證都會列在使用者帳戶設定中,但這兩項假設都不適用於非使用者管理的還原憑證金鑰。
Uber 團隊對 WebAuthn 服務進行微幅調整,建立新的憑證類型來區分密碼金鑰和還原憑證,並妥善處理,進而解決這個問題。
管理還原憑證生命週期
Uber 的工程師在後端管理憑證金鑰時,面臨了幾項挑戰,並獲得後端工程師 Ryan O’Laughlin 的專業支援:
- 防止孤立金鑰:一項重大挑戰是定義刪除已註冊公開金鑰的策略,防止金鑰變成「孤立」狀態。舉例來說,解除安裝應用程式會刪除本機憑證,但由於這項操作不會向後端發出信號,因此會在伺服器上留下未使用的金鑰。
- 平衡金鑰生命週期:金鑰需要足夠的「存留時間」來處理極端案例。舉例來說,如果使用者完成備份與還原程序,然後手動登出舊裝置,金鑰就會從舊裝置中刪除。不過,金鑰在伺服器上必須保持有效,新裝置才能繼續使用。
- 支援多部裝置:使用者可能擁有多部裝置,且能從任何裝置啟動備份和還原作業,因此後端必須支援每位使用者有多個還原憑證 (每部裝置一個)。
Uber 的工程師根據新的憑證註冊和憑證使用情形,制定伺服器端金鑰刪除規則,解決了這些問題。
這項功能從設計到推出,只花了兩個月的時間開發和測試。接著,為期五週的 A/B 實驗 (向使用者驗證功能的時間) 順利進行,並取得不容忽視的成果。
使用還原憑證防止使用者流失
Uber 讓使用者不必在新裝置上手動登入,成功留住可能因登入流程繁瑣而放棄的使用者。這項提升客戶便利性的措施,在許多方面都帶來了改善,雖然乍看之下可能微不足道,但以 Uber 的使用者族群規模來看,影響卻非常巨大:
- 手動登入 (簡訊動態密碼、密碼、社群登入) 減少 3.4%。
- 需要簡訊動態密碼的登入作業費用減少 1.2%。
- Uber 的存取率 (成功進入應用程式主畫面的裝置百分比) 提高 0.575%。
- 完成行程的裝置數量增加 0.614%。
如今,Restore Credentials 已成為 Uber 乘客應用程式的標準功能,試用組中超過 95% 的使用者都已註冊。
設定新裝置時,使用者可以從備份還原應用程式資料和憑證。選取 Uber 進行還原,且背景程序完成後,應用程式會在使用者首次啟動新裝置時自動登入。
還原憑證功能:隱形卻強大的影響力
Uber 計劃在未來幾個月內,擴大整合 Restore Credentials。根據試用結果,他們預估這項變更每年可減少 400 萬次手動登入。他們簡化應用程式存取流程,解決主要痛點,積極提升顧客滿意度和忠誠度,讓每次搭乘都成為美好體驗。
Uber 核心身分識別團隊的首席產品經理 Matt Mueller 表示:「整合 Google 的 RestoreCredentials 後,我們就能在新裝置上提供使用者期待的流暢體驗,一切都自然而然地運作。」「這直接反映在可衡量的收益成長上,證明減少登入障礙是提升使用者參與度和留存率的關鍵。」
準備好提升應用程式的登入體驗了嗎?
瞭解如何使用還原憑證,在切換裝置時提供流暢的登入體驗,並參閱網誌文章瞭解詳情。在最新 Canary 版 Android Studio Otter 中,您可以使用新功能模擬備份和還原機制,驗證整合情形。
-
個案研究WhatsApp 是全球最大的訊息平台,為全球數十億使用者提供服務。WhatsApp 是不同地區使用者預設的通訊工具,透過私密、可靠且安全的訊息服務,將使用者連結在一起。
Niharika Arora, Tracy Agyemang, Mayank Jain • 閱讀時間:8 分鐘 -
個案研究X 是一款社群媒體應用程式,提供即時新聞、娛樂、體育和政治等內容,致力協助全球近 5 億名使用者掌握完整資訊,並提供所有即時評論。
Niharika Arora, Tracy Agyemang • 閱讀時間:3 分鐘 -
個案研究Grab 是東南亞首屈一指的超級應用程式,透過單一應用程式為八個國家/地區的數百萬名使用者提供外送、交通和金融服務。
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • 閱讀時間:5 分鐘
每週透過電子郵件接收最新的 Android 開發洞察資訊。