本文說明如何使用 Credential Manager,從使用者的裝置取得經過加密驗證的電子郵件地址。這樣一來,應用程式使用者就不必再透過動態密碼或神奇連結驗證電子郵件地址。
本文將說明下列主題:
本指南假設您熟悉下列概念:
Android 相容性
這項功能適用於搭載 Android 9 (API 級別 28) 以上版本的行動裝置、平板電腦和摺疊式裝置。Google Play 服務 (GMS) 最低版本為 25.49.x。
使用者體驗
以下各節說明驗證流程中的使用者體驗、納入備用驗證方法的必要性,以及各種用途的建議使用者體驗。
驗證流程
分享已驗證電子郵件的使用者體驗如下:
使用者著重在輸入欄位,或輕觸呼叫 Credential Manager API 的按鈕。視畫面設計而定,您也可以在應用程式載入畫面時呼叫 API。
系統會顯示底部功能表,列出將與應用程式共用的資訊。如果裝置上沒有可用資訊,使用者會看到一般錯誤訊息。
使用者輕觸「同意並繼續」後,顯示成功或失敗訊息。
包含主要和備用流程
為確保使用者體驗流暢,請在需要電子郵件驗證的畫面上加入下列選項:
- 主要驗證選項:電子郵件欄位或按鈕,可觸發 Credential Manager API 流程,以便快速驗證。
- 其他驗證選項:如果驗證失敗 (例如裝置上沒有可用資訊,或是擷取的電子郵件與預期電子郵件不符),系統會提供連結或按鈕,讓使用者「透過其他方式驗證」或「使用其他選項」手動輸入電子郵件地址。使用者應可嘗試使用其他憑證驗證,或手動提供一次性密碼。
用途
以下各節說明電子郵件驗證的建議用途和使用者體驗。
註冊
使用者可立即使用已驗證的電子郵件地址建立帳戶,無須進行額外的驗證步驟。視需要提示使用者新增密碼金鑰。如果使用者選擇新增密碼金鑰,請觸發密碼金鑰建立流程。
帳戶救援
為避免使用者在垃圾郵件資料夾中尋找復原代碼時感到沮喪,請允許他們使用裝置上安全儲存的已驗證電子郵件地址復原帳戶。此外,建議他們建立密碼金鑰,以供日後使用。
敏感操作的重新驗證
要求快速重新驗證,保護敏感的使用者操作,例如變更設定或更新個人資料詳細資料。
支援的帳戶
透過 Credential Manager 進行電子郵件驗證時,僅支援驗證消費者 Google 帳戶。不支援 Workspace 帳戶和受監督帳戶。
您可以使用任何供應商的電子郵件地址建立 Google 個人帳戶,不一定要使用 @gmail.com。不過,Google 會以不同方式驗證這些帳戶:
- @gmail.com 帳戶:Google 是授權來源,且電子郵件已通過驗證。
- 對於非 @gmail.com 帳戶:從長遠來看,Google 並非這些電子郵件地址的授權來源。Google 會在建立帳戶時驗證電子郵件,但該電子郵件地址的擁有權可能會隨時間變更。因此,如果不是 @gmail.com 地址,您應考慮採取額外的驗證步驟 (例如傳送動態密碼),確保使用者仍可存取電子郵件帳戶。
如要進一步瞭解驗證的意義,請參閱「數位憑證」。
有效性和更新頻率
系統會根據裝置上有效 Google 帳戶的目前電子郵件地址,核發可驗證憑證 (VC)。這些憑證會預先核發給裝置,通常是在裝置閒置時核發。雖然這些憑證可能在多天內都有效,但系統會在分享憑證時進行檢查,確保帳戶仍存在於裝置上,且電子郵件地址有效,因此會優先考量帳戶的即時狀態,而非憑證的有效期限。
為確保真實性,系統會在分享時產生金鑰繫結 (kb) 簽章,並納入隨機數。
如果裝置離線或帳戶已移除,系統會顯示程序失敗,而不是提供過期的驗證碼或非使用中的 Google 帳戶驗證碼。
電子郵件送達率
雖然這個程序可確認帳戶的合法性,但無法保證郵件會傳送至收件匣 (例如,郵件可能會遭到系統歸類為垃圾郵件)。動態密碼仍是確認電子郵件送達能力的最終方法。
與「使用 Google 帳戶登入」功能比較
雖然「數位憑證」和「使用 Google 帳戶登入」解決方案都會提供經過驗證的電子郵件地址,但使用者流程和用途不同:
- 用途:Credential Manager 電子郵件驗證流程不只用於註冊或登入,而是可用於任何需要擷取已驗證電子郵件的用途。包括帳戶救援。
- 註冊:與「使用 Google 帳戶登入」不同,Credential Manager 流程不需要註冊 Google 帳戶。
- 平台支援:Credential Manager 流程僅適用於 Android。
- 範圍:與使用 Google 帳戶登入不同,使用 Google 帳戶登入可使用 OAuth 2.0 要求存取使用者資料 (例如透過範圍存取 Google 日曆或雲端硬碟),但 Digital Credentials API 僅用於擷取已驗證的身分屬性。無法用於要求其他授權範圍。
後續步驟
如要在應用程式中實作這項功能,請參閱實作指南。