关于从旧版 Google 登录迁移

为了简化应用的身份验证体验并让您的开发实践能够满足未来的需求,请从旧版 Google 登录(适用于 Android)迁移到 Android Credential Manager。Google 登录服务 Android 版(作为 com.google.android.gms:play-services-auth 的一部分)已被弃用,并将在未来的版本中从 Google Play 服务 Auth SDK 中移除。

本指南介绍了以下方面:

  • 迁移到 Credential Manager API 的好处
  • 旧版 SDK 与 Credential Manager 之间的实现差异

Credential Manager API 的优势

与旧版 Google 登录 Android 服务相比,Credential Manager 具有多项关键优势。它提供了一个简化的统一 API,支持现代功能和实践,同时提升了用户的身份验证体验。如需详细了解 Credential Manager,请参阅 Credential Manager 功能博文

“使用 Google 账号登录”实现的主要优势包括:

  • 统一 API:为所有登录方法(包括通行密钥、密码和联合登录机制)提供单一集成点。
  • 支持“使用 Google 账号登录”按钮:完全支持标准按钮,让您可以直接将其放入现有的界面流程中。
  • 无缝登录功能:直接提示用户通过一次点按操作使用其 Google 账号登录,从而减少用户在初始配置期间遇到的阻力。
  • 面向未来的安全性:内置对通行密钥(无密码身份验证的新标准)的支持。

这两种方法之间的区别

旧版和更新版 Credential Manager 在“使用 Google 账号登录”方面的体验差异如下:

  • 如果您之前将 silentSignIn 与旧版 Google 登录搭配使用,则 Credential Manager 的自动登录行为在用户体验方面略有不同。
    • 借助 Credential Manager,您可以请求身份验证,并将 filterByAuthorizedAccounts 设置为 truesetAutoSelectEnabled 设置为 true。此方法会显示一个短时间的底部动作条,不需要用户进行任何互动。
    • 结果类似于 silentSignIn
  • 旧版 Google 登录 SDK 可以在一次 API 调用中同时处理身份验证和授权,而更新后的 Credential Manager 实现则将这两者视为不同的操作:
    • 身份验证:使用 Credential Manager 让用户登录您的应用。
    • 授权:使用 AuthorizationClient API 执行特定操作,例如访问 Google 云端硬盘。如需详细了解授权,请参阅授权对用户数据的访问权限。这种分离有助于您将用户流映射到用户意图。您的用户可以使用自己的 Google 账号注册或登录。您可以在应用需要时单独请求授权权限,而不是仅在登录时请求。