电子邮件验证简介

本文档介绍了如何使用 Credential Manager 从用户设备获取经过加密验证的电子邮件地址。此流程让应用用户无需使用动态密码 (OTP) 或魔法链接验证其电子邮件。

本文档介绍了以下方面:

本指南假定您熟悉以下概念:

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 账号和受监督的账号。

您可以使用任何提供商的邮箱(不一定是 @gmail.com)创建个人 Google 账号。不过,Google 会以不同的方式验证这些账号:

  • 对于 @gmail.com 账号:Google 是权威来源,且已知该邮箱已通过验证。
  • 对于非 @gmail.com 账号:从长远来看,Google 不是这些邮箱的权威来源。虽然 Google 会在创建账号时验证电子邮件地址,但该电子邮件地址的所有权可能会随着时间的推移而发生变化。因此,对于非 @gmail.com 地址,您应考虑采取额外的验证步骤(例如发送动态密码),以确保用户仍有权访问该电子邮件账号。

如需详细了解验证的含义,请参阅数字凭证。

注意:除了用户的电子邮件信息之外,您还可以请求其他未经验证的字段,例如用户的名字、姓氏、姓名以及其 Google 账号的个人资料照片。不过,只有电子邮件地址会由 Google 验证。

如需了解电话号码验证,请参阅使用数字凭据验证电话号码。如需了解 Firebase 解决方案,请参阅 Firebase 电话号码验证。

有效性和新鲜度

系统会根据用户在设备上处于活跃状态的 Google 账号中的当前电子邮件地址,签发可验证凭据 (VC)。这些凭据会提前颁发给设备,通常是在设备空闲时。虽然这些凭证可能在多天内保持有效,但系统会在分享凭证时执行检查,以确保账号仍然存在、位于设备上,并且电子邮件地址有效,从而有效地优先考虑账号的即时状态,而不是凭证的有效期。

为帮助确保真实性,系统会在分享时生成密钥绑定 (kb) 签名,其中包含 Nonce。

如果设备处于离线状态或账号已被移除,则该过程会失败,而不会提供已过期的 VC 或非活跃 Google 账号的 VC。

电子邮件送达率

虽然该流程可以确认账号的合法性,但无法保证邮件能送达收件箱(例如,邮件可能会被转移到垃圾邮件文件夹)。动态密码仍然是确认电子邮件送达率的最终方法。

与“使用 Google 账号登录”功能对比

虽然数字凭证和使用 Google 账号登录解决方案都提供经过验证的电子邮件,但用户体验流程和应用场景有所不同:

  • 应用场景:Credential Manager 邮箱验证流程不仅适用于注册或登录场景,还可用于任何涉及检索已验证邮箱的场景。这可能还包括账号恢复。
  • 注册:与“使用 Google 账号登录”不同,Credential Manager 流程不需要 Google 注册。
  • 平台支持:Credential Manager 流程是仅限 Android 的解决方案。

  • 范围:与“使用 Google 账号登录”不同,后者可以使用 OAuth 2.0 请求访问用户数据(例如通过范围访问日历或云端硬盘),而 Digital Credentials API 仅用于检索经过验证的身份属性。它不能用于请求其他授权范围。

后续步骤

如需在应用中实现此功能,请参阅实现指南。