Method: accounts.signInWithGameCenter

使用 iOS Game Center 凭据让用户登录或注册。如果登录成功,系统会为经过身份验证的用户颁发新的 Identity Platform ID 令牌和刷新令牌。请求标头中必须包含软件包 ID(x-ios-bundle-identifier)。

请求中必须包含 API 密钥,以便识别 Google Cloud 项目。

Apple 已弃用 playerID 字段。在 10.5.0 及更高版本中,Apple 平台 Firebase SDK 将使用 gamePlayerIDteamPlayerID。升级到 SDK 10.5.0 或更高版本后,使用 playerID 的现有集成会改用 gamePlayerIDteamPlayerID。调用 signInWithGameCenter 时,您必须添加 playerID 以及新字段 gamePlayerIDteamPlayerID,才能成功识别所有现有用户。

将现有 Game Center 登录服务集成升级到 SDK 10.5.0 或更高版本是不可逆转的操作。

HTTP 请求

POST https://identitytoolkit.googleapis.com/v1/accounts:signInWithGameCenter

网址采用 gRPC 转码语法。

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "playerId": string,
  "publicKeyUrl": string,
  "signature": string,
  "salt": string,
  "timestamp": string,
  "idToken": string,
  "displayName": string,
  "tenantId": string,
  "teamPlayerId": string,
  "gamePlayerId": string
}
字段
playerId

string

必需。用户的 Game Center 玩家 ID。已被 Apple 弃用。

playerIDgamePlayerIDteamPlayerID 一起传递,以启动将用户的 Game Center 玩家 ID 迁移到 gamePlayerID 的流程。

publicKeyUrl

string

必需。用于提取 Apple 公钥以验证给定签名是否由 Apple 签名的网址。

signature

string

必需。Apple 生成的验证签名数据。

salt

string

必需。用于生成给定签名的随机字符串。

timestamp

string (int64 format)

必需。Apple 创建签名的时间(以自公元纪年以来的毫秒数表示)。

idToken

string

Identity Platform 账号的有效 ID 令牌。如果存在,此请求会将 Game Center 玩家 ID 与此 ID 令牌所代表的账号相关联。

displayName

string

用户的 Game Center 显示名称。

tenantId

string

用户登录的 Identity Platform 租户的 ID。

teamPlayerId

string

用户的 Game Center 团队玩家 ID。您使用开发者账号分发的所有游戏的玩家的唯一标识符。https://developer.apple.com/documentation/gamekit/gkplayer/3174857-teamplayerid

gamePlayerId

string

用户的 Game Center 游戏玩家 ID。游戏玩家的唯一标识符。https://developer.apple.com/documentation/gamekit/gkplayer/3113960-gameplayerid

响应正文

accounts.signInWithGameCenter 的响应消息

如果成功,响应正文将包含结构如下的数据:

JSON 表示法
{
  "localId": string,
  "playerId": string,
  "idToken": string,
  "refreshToken": string,
  "expiresIn": string,
  "isNewUser": boolean,
  "displayName": string,
  "teamPlayerId": string,
  "gamePlayerId": string
}
字段
localId

string

经过身份验证的用户的 ID。始终存在于响应中。

playerId

string

用户的 Game Center 玩家 ID。

playerIDgamePlayerIDteamPlayerID 一起传递,以启动将用户的 Game Center 玩家 ID 迁移到 gamePlayerID 的流程。

idToken

string

经过身份验证的用户的 Identity Platform ID 令牌。

refreshToken

string

经过身份验证的用户的 Identity Platform 刷新令牌。

expiresIn

string (int64 format)

ID 令牌到期前的秒数。

isNewUser

boolean

登录用户是否由此请求创建。

displayName

string

经过身份验证的用户的显示名称。

teamPlayerId

string

用户的 Game Center 团队玩家 ID。您使用开发者账号分发的所有游戏的玩家的唯一标识符。https://developer.apple.com/documentation/gamekit/gkplayer/3174857-teamplayerid

gamePlayerId

string

用户的 Game Center 游戏玩家 ID。游戏玩家的唯一标识符。https://developer.apple.com/documentation/gamekit/gkplayer/3113960-gameplayerid

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/identitytoolkit
  • https://www.googleapis.com/auth/cloud-platform

如需了解详情,请参阅 Authentication Overview