
Xbox 平台不提供标准的 OAuth2 revoke 端点;撤销访问权限主要通过客户端清除本地 Token 和引导用户在 Xbox 账户侧手动取消授权来实现。
xbox 平台不提供标准的 oauth2 `revoke` 端点;撤销访问权限主要通过客户端清除本地 token 和引导用户在 xbox 账户侧手动取消授权来实现。
在集成 Xbox OAuth(如通过 Microsoft Identity Platform 或 Xbox Live XSTS 流程)后,开发者常误以为需调用类似 https://xsts.auth.xboxlive.com/xsts/revoke 的接口来主动注销用户——但Xbox 官方并未公开或支持任何 Token 撤销(revoke)API。https://xsts.auth.xboxlive.com/xsts/authorize 仅用于获取 XSTS 令牌,替换为 /revoke 将返回 404 或 405 错误,不可行。
✅ 正确做法分两层:
-
客户端层面:立即失效本地凭证
删除应用中存储的以下任意或全部凭据:- Microsoft ID Token / Access Token(来自
login.microsoftonline.com) - Xbox STS Token(XSTSToken,即
Xbl3.0会话令牌) - 用户绑定的
user_hash、uhs或DisplayClaims中的标识信息
示例(前端 JavaScript):
// 清除 localStorage 中的 Xbox 相关 Token localStorage.removeItem('xbox_access_token'); localStorage.removeItem('xbox_xsts_token'); localStorage.removeItem('xbox_user_uhs'); sessionStorage.clear(); // 如使用 session 存储 - Microsoft ID Token / Access Token(来自
-
用户授权层面:引导用户手动撤回同意
若用户希望彻底终止该应用对其 Xbox 账户的访问权限(例如删除“已授权应用”记录),必须由用户本人操作:- 访问 Microsoft 账户安全页面
- 登录后进入「应用权限」→ 找到你的应用名称 → 点击「移除权限」
- 或通过 Xbox 官网:account.xbox.com/settings → 「隐私与在线安全」→ 「管理应用权限」
⚠️ 注意事项:
- Xbox 不支持服务端主动吊销 Token(无 RFC 7009 兼容的
/revoke接口); - Token 本身设有短有效期(如 XSTS Token 默认约 1 小时),过期后自动失效;
- 若应用使用了
offline_access范围并获得 Refresh Token,也无法通过 Xbox 接口刷新或撤销它——Refresh Token 仅适用于 Microsoft Identity Platform 的login.microsoftonline.com端点,且其撤销仍需调用 Microsoft Graph 的revokeSignInSessions(需对应权限); - 开发者不应尝试构造非文档化端点(如修改
authorize为revoke),这违反 Xbox API 使用条款,可能导致应用被限流或封禁。
? 总结:真正的“撤销”是轻量级的客户端清理 + 用户自主授权管理。设计登出流程时,应清晰提示用户:“您的本地登录状态已清除;如需永久取消本应用访问权限,请前往 Microsoft 账户设置中移除授权。”

















