平台身份验证

将游戏与 Google Play 游戏服务 (PGS) 集成的第一步是实现平台身份验证。这是访问所有其他功能(例如成就、排行榜和活动)的必要条件。

由于 Play 游戏服务 SDK 会在游戏启动时自动执行平台身份验证,因此您需要将 PGS v2 SDK 与游戏集成,并实现建议的身份验证流程,以便游戏能够实现并满足 Google Play 游戏 Level Up 用户体验指南

身份验证概念

在 Play 游戏服务 v2 中,“登录”的概念分为两个不同的层:平台身份验证游戏内身份验证

平台身份验证

Play 游戏服务提供平台互动层。它使用玩家资料管理玩家与 Google Play 游戏生态系统的关系,以访问成就、排行榜和任务等功能。平台身份验证具有以下关键特征:

  • 静默且自动:当游戏启动时,系统会在后台自动进行身份验证。Play 游戏服务不需要手动登录按钮。
  • 玩家 ID:成功完成平台身份验证后,Play 游戏服务会提供稳定的玩家 ID。对于同一款游戏,此 ID 在不同设备上是一致的。此 ID 主要用于跟踪平台功能,例如成就进度。
  • 解耦:您不得使用 Play 游戏服务作为游戏的主要身份系统来管理玩家的游戏内账号 (IGA)、游戏进度或物品清单。Play 游戏服务可作为持久性平台标识符。

玩家 ID

玩家 ID 是 Play 游戏服务玩家账号的标识符。您的游戏可以检索使用 Play 游戏服务身份验证登录游戏的任何玩家的玩家 ID。您的游戏客户端集成游戏服务器集成云端存档服务可以使用玩家 ID 安全地访问 Play 游戏服务中的玩家数据。

当用户在多个设备上玩同一款游戏时,玩家 ID 是一致的。但是,不同游戏之间不一定会始终保持一致。 如需了解详情,请参阅新一代玩家 ID

游戏内身份验证

您管理游戏内账号 (IGA),该账号是用于绑定玩家在游戏中的进度、产品目录和币种的身份系统。

  • 主要身份:您可以使用自己的后端、使用 Google 账号登录 (SiWG) 或其他提供方作为主要登录方法。
  • 独立性:玩家可以登录 Play 游戏服务(平台身份),在登录任何特定 IGA(例如,访客账号或特定 SiWG 账号)的同时赚取成就。
  • 管理多个 IGA:Play 游戏服务仅处理平台身份验证。游戏负责管理玩家登录 IGA 的主要身份验证。这意味着,玩家在 IGA 之间切换的游戏现有流程不会发生任何变化。当玩家切换账号时,他们仍会通过 PGS 向 Play 游戏平台进行身份验证,并且您会继续根据持久性玩家 ID 发送与成就和其他 PGS 功能相关的数据。

借助“使用 Google 账号登录”功能实现跨平台连续性

为了帮助玩家在 Android、iOS 和 Web 之间同步游戏进度,请使用使用 Google 账号登录作为主要的游戏内身份验证方法。请考虑以下事项:

  • “使用 Google 账号登录”按钮:在 PGS v1 中,Google Play 按钮通常同时处理平台登录和游戏登录。在 v2 中,这些是单独的进程。 实现一个标准的使用 Google 账号登录按钮,供玩家进行身份验证并访问其 IGA。
  • Google 登录 SDK
    • 对于 Android 和 iOS,请使用标准的 Google 登录 SDK 对玩家进行身份验证,以将其登录到 IGA 中。
    • 使用 Google Open ID 作为玩家游戏内账号的主要标识符。
    • 使用 Play 游戏服务玩家 ID 来报告玩家在 Play 游戏功能(例如成就)方面的进度。

推荐的集成

如需将游戏与 Play 游戏服务集成,请按以下建议的步骤操作:

初始化和身份验证

您必须完成此步骤才能初始化并验证游戏:

通过在启动时初始化 Play 游戏服务 v2 SDK 来实现平台身份验证。如需了解详情,请参阅适用于 Android 游戏的平台身份验证机制。 此步骤是访问 Play 游戏服务功能(例如成就和排行榜)所必需的。

身份验证在游戏启动期间作为静默后台进程运行。现有 Play 游戏服务用户在成功通过身份验证后会看到一条欢迎消息。系统会在 SDK 初始化期间提示没有 Play 游戏服务个人资料的用户创建个人资料

自动登录提示

创建个人资料

玩家需要拥有 Play 游戏服务玩家资料才能使用该平台。有些玩家在开始玩您的游戏时可能没有 Play 游戏服务个人资料。系统会要求这些玩家创建账号。

默认情况下,当您启动没有 Play 游戏服务玩家资料的游戏时,系统会自动显示自动触发的玩家资料创建提示。

启动游戏时,系统会显示个人资料创建提示。
启动游戏时显示的个人资料创建提示(点击可放大)。

游戏内身份验证

成功执行平台身份验证后,开发者应根据当前游戏状态,实现以下步骤,以便玩家访问其 IGA:

  1. 如果设备上存在有效的游戏会话,则允许玩家继续当前会话。
  2. 如果没有活跃的游戏会话:
    1. 如果出现无缝恢复场景,且上次玩过的 IGA 与 PGS 玩家 ID 相关联,则继续自动恢复相关联的 IGA。
    2. 否则,向玩家显示应用的指定登录或账号创建界面。然后,玩家可以选择自己喜欢的身份验证方法来创建或登录现有 IGA。

OAuth 范围

Play 游戏服务依赖 OAuth 系统来允许玩家授权您的游戏访问他们的账号。Play 游戏服务针对游戏提供唯一范围 (games-lite),如果您的游戏使用游戏存档功能,将依赖另一个范围 (drive.appdata)。通过游戏存档功能,您可以访问用户的 Google 云端硬盘账号,游戏数据便存储在此处。

使用 Play 游戏服务 v2 SDK 时,您可以请求额外的 OAuth 范围。如果您需要额外的 OAuth 范围,建议您调用 requestServerSideAccess。如需了解详情,请参阅获取服务器授权代码检索服务器身份验证代码

理想身份验证流程的用户体验指南

以下指南介绍了与 PGS v2 集成相关的推荐身份验证流程。这些场景涵盖了新用户、现有用户、回访用户和访客模式。

新建玩家

此流程适用于用户首次在设备上启动游戏,且该设备之前没有该游戏的游玩记录。

  1. 启动时,PGS SDK 会初始化以验证用户的平台身份(PGS 玩家 ID)。
  2. 完成此后台握手后,游戏会向玩家显示 IGA 创建选项,例如创建新账号使用 Google 账号登录或其他社交登录方法。
  3. 玩家创建或选择 IGA 后,游戏会在其后端将此账号与所选的主标识符绑定。
  4. 游戏还会将所选 IGA 绑定到 PGS 玩家 ID,将其标记为用于无缝恢复的上次玩过的 IGA。
已登录 PGS 玩家资料的新玩家
已登录 PGS 玩家资料的新玩家(点击可放大)。
没有 PGS 玩家资料的新玩家
没有 PGS 玩家资料的新玩家(点击可放大)。
已登录 PGS 玩家资料的新玩家
已登录 PGS 玩家资料的新玩家(点击可放大)。

有活跃会话的玩家

此方案描述的是玩家在已处于有效会话状态的设备上启动游戏。目标是提供顺畅的入门体验。

  1. 当玩家启动应用时,PGS 会在后台静默进行身份验证,并向您提供玩家 ID,以便您跟踪玩家在成就和其他 Play Games 功能方面的进度。
  2. 同时,在适用的情况下,游戏会绕过登录界面,立即让玩家登录其有效的 IGA 会话或与其玩家 ID 关联的上次玩过的 IGA,以便玩家可以立即继续游戏。
在同一设备上启动游戏,并登录 PGS 玩家资料
在同一设备上使用已登录的 PGS 玩家资料启动游戏(点击可放大)。
在同一设备上启动游戏,但 PGS 玩家资料已退出登录
在同一设备上启动游戏,但使用已退出登录的 PGS 玩家资料(点击可放大)。
在同一设备上启动没有 PGS 玩家资料的游戏
在没有 PGS 玩家资料的同一设备上启动游戏(点击可放大)。
在新设备上启动游戏,并使用已登录的 PGS 玩家资料和已关联的 IGA
在新设备上启动游戏,其中包含已登录的 PGS 个人资料和已关联的 IGA(点击可放大)。
在新设备上启动游戏,但登录的 PGS 玩家资料未关联 IGA
在新设备上启动游戏,该设备已登录 PGS 个人资料且未关联 IGA(点击可放大)。
在新设备上启动游戏,但 PGS 个人资料处于已退出账号状态
在新设备上启动游戏,但未登录 PGS 玩家资料(点击可放大)。
在新设备上启动游戏,但没有 PGS 玩家资料
在新设备上启动游戏,但没有 PGS 玩家资料(点击可放大)。

玩家切换账号

当具有有效会话的玩家前往游戏设置以切换账号时,会发生此流程。 例如,退出主账号以使用备用账号。

  1. 玩家退出当前 IGA,但 PGS 平台连接仍处于有效状态。
  2. 当玩家使用其他 IGA 登录时,游戏会将此新账号绑定到当前的 PGS 玩家 ID,作为最后玩过的 IGA,以便无缝恢复。
切换到未与任何 PGS 玩家资料绑定的 IGA
切换到未与任何 PGS 配置文件绑定的 IGA(点击可放大)。
切换到与同一已登录 PGS 玩家资料绑定的 IGA
切换到与同一已登录 PGS 个人资料相关联的 IGA(点击可放大)。
切换到与不同 PGS 玩家资料绑定的 IGA
切换到与不同 PGS 配置文件绑定的 IGA(点击可放大)。
在设备上切换没有 PGS 玩家资料的 IGA
在设备上切换 IGA,但没有 PGS 配置文件(点击可放大)。
切换 IGA(在 PGS 玩家资料处于未登录状态时)
使用已退出登录的 PGS 个人资料切换 IGA(点击可放大)。
切换到不存在的 IGA
切换到不存在的 IGA(点击可放大)。

为回归玩家提供无缝恢复功能

此场景适用于玩家在一段时间不玩游戏后、重新安装游戏后或在全新设备上启动游戏时。建议游戏实现无缝恢复

  1. 启动时,PGS 会验证用户身份,并向游戏提供 PGS 玩家 ID。
  2. 游戏会检查其后端(或检索到的 Recall 令牌,如果使用 Recall API)以查看上次玩过的 IGA 是否已与此 PGS ID 相关联。
  3. 如果找到关联,游戏会自动恢复玩家的进度并登录,完全跳过手动登录界面。
  4. 否则,游戏会向玩家显示登录界面
    1. 然后,玩家选择登录方法并登录 IGA
    2. 然后,游戏会将此 IGA 与 PGS 玩家 ID 绑定,作为无缝恢复的最后玩过的 IGA。
已退出 PGS 玩家资料的回归玩家
已退出登录的 PGS 玩家资料(点击可放大)。
已登录 PGS 玩家资料并关联了 IGA 的回访玩家
已登录 PGS 个人资料并关联了 IGA 的回访玩家(点击可放大)。
已登录 PGS 玩家资料但未关联 IGA 的回流玩家
已登录 PGS 个人资料但未关联 IGA 的回访玩家(点击可放大)。
没有 PGS 玩家资料的回归玩家
没有 PGS 玩家资料的回头玩家(点击可放大)。

访客模式

玩家可以使用本地访客账号启动并畅玩您的游戏。 Play 游戏服务仍会在后台对玩家进行身份验证。如果玩家选择保存进度,您的游戏会将游客会话转换为永久 IGA 并将其绑定到玩家 ID。如需详细了解冲突解决,请参阅访客账号

访客模式 - 未创建 IGA
访客模式 - 未创建 IGA(点击可放大)。
访客模式 - IGA 已创建
访客模式 - 已创建 IGA(点击可放大)。