使用 iOS Game Center 凭据让用户登录或注册。如果登录成功,系统会为经过身份验证的用户颁发新的 Identity Platform ID 令牌和刷新令牌。请求标头中必须包含软件包 ID(x-ios-bundle-identifier
)。
请求中必须包含 API 密钥,以便识别 Google Cloud 项目。
Apple 已弃用 playerID
字段。在 10.5.0 及更高版本中,Apple 平台 Firebase SDK 将使用 gamePlayerID
和 teamPlayerID
。升级到 SDK 10.5.0 或更高版本后,使用 playerID
的现有集成会改用 gamePlayerID
和 teamPlayerID
。调用 signInWithGameCenter
时,您必须添加 playerID
以及新字段 gamePlayerID
和 teamPlayerID
,才能成功识别所有现有用户。
将现有 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 |
必需。用户的 Game Center 玩家 ID。已被 Apple 弃用。 将 |
publicKeyUrl |
必需。用于提取 Apple 公钥以验证给定签名是否由 Apple 签名的网址。 |
signature |
必需。Apple 生成的验证签名数据。 |
salt |
必需。用于生成给定签名的随机字符串。 |
timestamp |
必需。Apple 创建签名的时间(以自公元纪年以来的毫秒数表示)。 |
idToken |
Identity Platform 账号的有效 ID 令牌。如果存在,此请求会将 Game Center 玩家 ID 与此 ID 令牌所代表的账号相关联。 |
displayName |
用户的 Game Center 显示名称。 |
tenantId |
用户登录的 Identity Platform 租户的 ID。 |
teamPlayerId |
用户的 Game Center 团队玩家 ID。您使用开发者账号分发的所有游戏的玩家的唯一标识符。https://developer.apple.com/documentation/gamekit/gkplayer/3174857-teamplayerid |
gamePlayerId |
用户的 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 |
经过身份验证的用户的 ID。始终存在于响应中。 |
playerId |
用户的 Game Center 玩家 ID。 将 |
idToken |
经过身份验证的用户的 Identity Platform ID 令牌。 |
refreshToken |
经过身份验证的用户的 Identity Platform 刷新令牌。 |
expiresIn |
ID 令牌到期前的秒数。 |
isNewUser |
登录用户是否由此请求创建。 |
displayName |
经过身份验证的用户的显示名称。 |
teamPlayerId |
用户的 Game Center 团队玩家 ID。您使用开发者账号分发的所有游戏的玩家的唯一标识符。https://developer.apple.com/documentation/gamekit/gkplayer/3174857-teamplayerid |
gamePlayerId |
用户的 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。