關於電子郵件驗證

本文說明如何使用 Credential Manager,從使用者裝置取得經過加密驗證的電子郵件地址。這樣一來,應用程式使用者就不必透過動態密碼 (OTP) 或魔術連結驗證電子郵件。

本文將說明下列主題:

  • Android 相容性
  • 使用者體驗
  • 支援的帳戶
  • 電子郵件送達率的影響
  • 與「使用 Google 帳戶登入」比較

本指南假設您已熟悉下列概念:

Android 相容性

搭載 Android 9 (API 級別 28) 以上版本的手機、平板電腦和摺疊式裝置,都支援這項功能。Google Play 服務 (GMS) 的最低版本需求為 25.49.x。

使用者體驗

以下各節將說明驗證流程中的使用者體驗、加入備用驗證方法的必要性,以及各種用途的建議使用者體驗。

驗證流程

分享已驗證電子郵件地址的使用者體驗如下:

  1. 使用者聚焦於輸入欄位,或輕觸呼叫 Credential Manager API 的按鈕。視畫面設計而定,您也可以在應用程式載入畫面時呼叫 API。
  2. 底部功能表會隨即顯示,並列出要與應用程式共用的資訊。如果裝置上沒有任何資訊,使用者會看到一般錯誤訊息。
  3. 使用者輕觸「同意並繼續」後,顯示成功或失敗訊息。
  4. 注意:如果收到的驗證電子郵件與預期不符,請告知使用者,並要求他們改用其他憑證再試一次,或提供其他驗證方法,例如動態密碼。
  5. (選用,建議) 如果使用者正在註冊您的服務,請提示使用者建立密碼金鑰,方便他們日後登入。
  6. 注意:電子郵件驗證程序不會自動觸發密碼金鑰建立程序。不過,強烈建議您加入建立密碼金鑰的步驟。密碼金鑰可讓使用者更輕鬆、更安全地登入,不必再使用傳統的使用者名稱和密碼互動。

包含主要和備用流程

為確保使用者體驗流暢,請在需要電子郵件驗證的畫面上加入下列選項:

  • 主要驗證選項:電子郵件欄位或按鈕,可觸發 Credential Manager API 流程,快速完成驗證。
  • 替代驗證選項:提供「以其他方式驗證」或「其他選項」的連結或按鈕,讓使用者在驗證失敗時 (例如裝置上沒有可用資訊,或擷取的電子郵件與預期不符) 手動輸入電子郵件。這樣一來,使用者就能嘗試使用其他憑證或手動提供動態密碼進行驗證。

用途

以下各節說明電子郵件驗證的建議用途和使用者體驗。

註冊

使用者可以立即使用已驗證的電子郵件建立帳戶,不必另外進行驗證。視需要提示使用者新增密碼金鑰。如果使用者選擇新增密碼金鑰,請觸發密碼金鑰建立流程。

圖片:Credential Manager 中的數位憑證使用者介面
圖 1. 註冊時驗證電子郵件。

帳戶救援

為避免使用者在垃圾郵件資料夾中尋找復原碼時感到挫折,請允許他們使用安全儲存在裝置上的已驗證電子郵件復原帳戶。此外,建議他們建立密碼金鑰,以便日後使用。

圖片:Credential Manager 中的數位憑證使用者介面
圖 2. 在帳戶救援期間進行電子郵件驗證。

敏感操作的重新驗證

要求使用者快速重新驗證,保護變更設定或更新個人資料等敏感操作。

圖片:Credential Manager 中的數位憑證使用者介面
圖 3. 重新驗證時進行電子郵件驗證。

支援的帳戶

透過 Credential Manager 驗證電子郵件時,只能驗證個人 Google 帳戶。不支援 Workspace 帳戶和受監護帳戶。

建立個人 Google 帳戶時,可以使用任何供應商的電子郵件地址,不一定要是 @gmail.com。不過,Google 驗證這些帳戶的方式不同:

  • @gmail.com 帳戶:Google 是授權來源,且電子郵件地址已通過驗證。
  • 非 @gmail.com 帳戶:Google 不是這些電子郵件地址的長期授權來源。雖然 Google 會在建立帳戶時驗證電子郵件地址,但該電子郵件地址的擁有權可能會隨著時間而改變。因此,對於非 @gmail.com 地址,建議您考慮採取額外的驗證步驟 (例如傳送動態密碼),確保使用者仍可存取電子郵件帳戶。

如要進一步瞭解驗證的含義,請參閱「數位憑證」。

注意:除了使用者的電子郵件資訊外,您還可以要求其他未經驗證的欄位,例如使用者的名字、姓氏、姓名,以及 Google 帳戶的個人資料相片。不過,只有電子郵件地址會由 Google 驗證。

如要驗證電話號碼,請參閱「使用數位憑證驗證電話號碼」。如需 Firebase 解決方案,請參閱「Firebase 電話號碼驗證」。

有效性和更新間隔

系統會根據使用者目前在裝置上使用的 Google 帳戶電子郵件地址,核發可驗證憑證 (VC)。這些憑證會預先核發給裝置,通常是在裝置閒置時。雖然這些憑證可能在多天內有效,但系統會在分享憑證時執行檢查,確保帳戶仍存在、位於裝置上,且電子郵件地址有效,這實際上會優先考量帳戶的即時狀態,而非憑證的有效期限。

為確保真實性,系統會在分享時產生金鑰繫結 (kb) 簽章,並納入 Nonce。

如果裝置離線或帳戶已移除,程序就會失敗,而不會提供過期的驗證碼,或無效 Google 帳戶的驗證碼。

電子郵件送達率

雖然這項程序可確認帳戶的合法性,但無法保證郵件一定會傳送至收件匣 (例如,電子郵件可能會轉移至垃圾郵件)。動態密碼仍是確認電子郵件送達率的最終方法。

與「使用 Google 帳戶登入」功能比較

雖然數位憑證和使用 Google 帳戶登入解決方案都提供經過驗證的電子郵件,但使用者流程和用途不同:

  • 用途:Credential Manager 電子郵件驗證流程不限於註冊或登入用途,只要涉及擷取已驗證電子郵件,都可使用。這可能也包括帳戶救援。
  • 註冊:與「使用 Google 帳戶登入」不同,Credential Manager 流程不需要 Google 註冊。
  • 平台支援:Credential Manager 流程是 Android 專屬解決方案。

  • 範圍:使用 Google 帳戶登入功能可透過 OAuth 2.0 要求存取使用者資料 (例如透過範圍存取 Google 日曆或雲端硬碟),但 Digital Credentials API 僅用於擷取經驗證的身分屬性。無法用於要求其他授權範圍。

後續步驟

如要在應用程式中導入這項功能,請參閱導入指南。