跳到主要内容

Web

本文旨在介绍如何设置 Xbox Series X|S 身份验证,让您的网页可以使用 Player Network 登录鉴权服务通过 Xbox 渠道登录。

注意

Xbox Series X|S 的开发一般不面向个人开发者,需要通过公司的商务联系 Microsoft 开通 Xbox Series X|S 开发权限。

前提条件

1. 在 Azure Portal 上设置游戏

使用 Azure Active Directory 的应用注册界面,在 Microsoft 平台注册您的游戏。

  1. 使用开发者账号登录 Azure Portal,在 Azure Active Directory 注册您的游戏。

  2. 选择 App Registration > + New Registration

  3. 为您的游戏命名,并将 Supported account types 选择为 Personal Microsoft accounts only

  4. Redirect URI 下选择 Web 并输入 https://test-common-web.intlgame.com/jssdk/xboxlogincallback.html,设置在成功授权后的 URI 跳转。 Image

  5. 点击 Register 完成注册。

  6. Manage 下的 Authentication,点击 Web 下的 Add URIImage

  7. 输入 https://common-web.intlgame.com/jssdk/xboxlogincallback.html 为 URI 后点击 Save

  8. Manage 下的 Certificates & secrets,点击 Client secrets 下的 + New client secretImage

  9. 完成必填项的填写,并点击 Add,添加密钥。
    Image

    • Description:输入密钥的描述。
    • Expires:选择密钥过期的时间,最长有效期为两年。在密钥过期之前,必须在 Azure Portal 中新建一个密钥并到 Player Network 控制台中进行配置。
  10. 记下密钥的 Value,此值只能在创建的时候查看。 Image

注意

客户端 ID 和密钥值为 Player Network 控制台配置的必填项,客户端 ID 可从游戏的 Overview 页面中 Essentials 下的 Application (client) ID 字段确认。

Image

  1. 获取 Player Network 控制台登录账号
  2. 为游戏创建新项目,或加入已有项目
  3. 在 Player Network 控制台添加 Xbox Series X|S 为业务的登录鉴权方式
注意

更多关于其他第三方渠道接入 SDK 的信息,请参见 JavaScript SDK

步骤1:引⼊ JavaScript SDK

警告

项目联调阶段可以引⼊ SDK 联调版本包,该包仅用于集成测试。项目上线须引⼊ SDK 正式版本包。

目前已支持 npm 包方式和 CDN 方式。

$ npm install @intlsdk/account-api
// SDK 联调版本包
<script src="https://test-common-web.intlgame.com/sdk-cdn/account-api/latest/index.umd.js"></script>
// SDK 正式版本包
<script src="https://common-web.intlgame.com/sdk-cdn/account-api/latest/index.umd.js"></script>

步骤2:使用 SDK

警告

在集成测试时,将 env 设置为测试环境;项目上线时,将 env 设置为相应的正式环境。

const accountApi = new IntlgameAccountApi({
env: "test", // SDK environment
gameID: 11,
});
参数类型描述备注
envstringSDK 环境
更多信息,请参见 获取部署集群信息
必填
gameIDnumberPlayer Network 游戏唯一标识 ID必填

步骤3:实现网页登录

实例化 accountApi 组件后,调用 thirdAuthorize 接口申请 Microsoft 渠道的登录授权令牌。

accountApi.thirdAuthorize({
third_type: 'xbox',
}).then(
(res) => {
console.log(res);
});

当 Microsoft 返回登录授权令牌后,调用 intlAuthorize 接口获取 Player Network SDK OpenID 和令牌登录网站。

accountApi.intlAuthorize({
third_type: 'xbox',
channel_info: {
auth_token: "XBL3.0 x: xxxx",
xuid: "xxxx"
}
}).then(
(res) => {
console.log(res);
});

调用 intlLogout 接口登出网站。

accountApi.intlLogout({
token: 'xxxx',
openid: 'xxxxxxxx',
channel_id: 27,
}).then(
(res) => {
console.log(res);
});