- XBOX 服務用戶端 從已向 XBOX 服務驗證的用戶端。這些呼叫一律在使用者內容中。
- 服務對服務 從自訂遊戲 Web 服務透過服務對服務 XBOX 服務呼叫。這些呼叫是代表使用者進行,或直接以服務身分進行。 如需來自遊戲服務之呼叫的詳細資訊,請參閱遊戲服務對 XBOX 服務的呼叫。
用戶端對 XBOX 服務的呼叫
對於使用 Microsoft Game Development Kit (GDK) 對 XBOX 服務進行的所有呼叫,強烈建議遊戲使用 Microsoft Game Development Kit (GDK) 版本隨附的 XBOX 服務 API (XSAPI)。這些 API 會處理 HTTP 要求,並透過物件直接將可用的服務資料傳回給遊戲。它們也會實作我們為 XBOX 服務和驗證建議的連線和快取行為。如需這些 API 的詳細資訊,請參閱 XBOX 服務 API 文件 XSAPI 參考。 下列各節僅為了完整性以及更深入了解 XBOX 服務驗證而提供。初始設定
XBOX 服務已為所有遊戲透明地預先設定。不需要額外的端點設定。這適用於所有*.xboxlive.com 子網域。
權杖擷取和連線流程
若要使用任何 XBOX 服務端點,必須有 XSTS 驗證權杖和訊息簽章。如果沒有此資訊,與服務的通訊會遭到拒絕。 XSTS 權杖和使用者識別 (使用者雜湊) 必須包含在要求的Authentication 標頭中。訊息簽章必須在要求的 Signature 標頭中指定。如需這些標頭結構的詳細資訊,請參閱 XBOX 服務安全性權杖 (XSTS 權杖)。
取得 XSTS 權杖
XSTS 權杖和簽章標頭資料是透過 XUserGetTokenAndSignatureUtf16Async API 取得的。它提供服務要求所需的標頭。 接著,遊戲會透過下列流程,使用XUserGetTokenAndSignatureUtf16Async API 要求 XBOX 服務端點的 XSTS 權杖。
- 對目前使用者呼叫
XUserGetTokenAndSignatureUtf16Async。在 API 呼叫中包含 XBOX 服務的 URL 以及必要的標頭或訊息本文。 此 API 呼叫會擷取 XBOX 服務端點的 XSTS 權杖。此呼叫會為訊息和預先定義的標頭產生訊息簽章。 - 從非同步結果透過
XUserGetTokenAndSignatureUtf16Result擷取 XSTS 權杖和簽章。XUserGetTokenAndSignatureUtf16Result會傳回加密的 XSTS 權杖。遊戲應將傳回的權杖視為不透明資料。權杖資料不得寫入磁碟,也不得在後續服務呼叫之外快取於遊戲空間中。 - 在 HTTPS 要求的 Authorization 標頭中適當地使用 Microsoft Windows HTTP Services (WinHTTP)、xCurl 和 XSTS 權杖。
權杖到期和重新整理
XSTS 權杖只在特定期間內有效。XSTS 權杖的預設到期時間為四小時。每個權杖都包含所有 XBOX 服務都會驗證的時間戳記。 每個新的驗證或登入要求都必須使用 XUserGetTokenAndSignatureUtf16Async API。XUserGetTokenAndSignatureUtf16Async 會處理權杖到期和快取。此 API 可確保遊戲一律收到有效的權杖。除此之外,遊戲不得快取權杖。
當向 XBOX 服務端點提供已到期或無效的權杖時,會傳回 HTTP/401 錯誤。