Skip to main content
本主题提供有关 XBOX services 调用身份验证的背景信息。 为了以更快的速度公开 XBOX services,并允许游戏使用这些服务而不依赖于特定的恢复版本,XBOX services 作为 RESTful HTTPS 端点发布。这些服务的身份验证和授权需要有效的 XBOX 安全令牌服务 (XSTS) 令牌和签名。有关 XSTS 令牌的更多信息,请参阅 XBOX services 安全令牌 (XSTS 令牌) 通过两种可能的路径调用 XBOX services。
  1. XBOX services 客户端 来自已通过 XBOX services 身份验证的客户端。这些调用始终在用户上下文中。
  2. 服务到服务 来自自定义游戏 Web 服务,通过服务到服务的 XBOX services 调用。这些调用要么代表用户进行,要么直接作为服务进行。 有关来自游戏服务的调用的更多信息,请参阅 从游戏服务向 XBOX services 发出的调用

对 XBOX services 的客户端调用

对于通过 Microsoft Game Development Kit (GDK) 对 XBOX services 的所有调用,我们强烈建议游戏使用与 Microsoft Game Development Kit (GDK) 版本捆绑在一起的 XBOX Service API (XSAPI)。这些 API 处理 HTTP 请求,并通过对象将可用的服务数据直接返回给游戏。它们还实现了我们为 XBOX services 和身份验证推荐的连接和缓存行为。有关这些 API 的更多信息,请参阅 XBOX Service API 文档 XSAPI 参考 以下部分仅供完整性和更深入了解 XBOX services 身份验证之用。

初始设置

XBOX services 对所有游戏进行透明预配置。不需要额外的端点配置。这适用于所有 *.xboxlive.com 子域。

令牌检索和连接流程

要使用任何 XBOX services 端点,必须提供 XSTS 身份验证令牌和消息签名。如果没有此信息,将拒绝与服务的通信。 XSTS 令牌和用户标识(用户哈希)必须包含在请求的 Authentication 标头中。消息签名必须在请求的 Signature 标头中指定。有关这些标头结构的详细信息,请参阅 XBOX services 安全令牌 (XSTS 令牌)

获取 XSTS 令牌

XSTS 令牌和签名标头数据通过 XUserGetTokenAndSignatureUtf16Async API 获取。它提供服务请求所需的标头。 然后,游戏使用 XUserGetTokenAndSignatureUtf16Async API 通过以下流程为 XBOX services 端点请求 XSTS 令牌。
  1. 对当前用户调用 XUserGetTokenAndSignatureUtf16Async。在 API 调用中包含 XBOX services 的 URL 和所需的标头或消息正文。 此 API 调用为 XBOX services 端点检索 XSTS 令牌。该调用为消息和预定义标头生成消息签名。
  2. 通过 XUserGetTokenAndSignatureUtf16Result 从异步结果中检索 XSTS 令牌和签名。 XUserGetTokenAndSignatureUtf16Result 返回加密的 XSTS 令牌。游戏应将返回的令牌视为不透明数据。令牌数据不得写入磁盘或缓存在游戏空间中,除非用于随后的服务调用。
  3. 根据需要在 HTTPS 请求的 Authorization 标头中使用 Microsoft Windows HTTP Services (WinHTTP)、xCurl 和 XSTS 令牌。

令牌过期和刷新

XSTS 令牌仅在特定持续时间内有效。XSTS 令牌的默认过期时间为四小时。每个令牌都包含一个时间戳,该时间戳由所有 XBOX services 验证。 XUserGetTokenAndSignatureUtf16Async API 必须用于每个新的身份验证或登录请求。XUserGetTokenAndSignatureUtf16Async 处理令牌过期和缓存。该 API 确保游戏始终收到有效令牌。否则游戏不得缓存令牌。 当向 XBOX services 端点出示过期或无效的令牌时,将返回 HTTP/401 错误。
最后修改于 2026年8月25日