Web
本文旨在介绍如何设置 Xbox Series X|S 身份验证,让您的网页可以使用 Player Network 登录鉴权服务通过 Xbox 渠道登录。
Xbox Series X|S 的开发一般不面向个人开发者,需要通过公司的商务联系 Microsoft 开通 Xbox Series X|S 开发权限。
前提条件
1. 在 Azure Portal 上设置游戏
使用 Azure Active Directory 的应用注册界面,在 Microsoft 平台注册您的游戏。
-
使用开发者账号登录 Azure Portal,在 Azure Active Directory 注册您的游戏。
-
选择 App Registration > + New Registration。
-
为您的游戏命名,并将 Supported account types 选择为 Personal Microsoft accounts only。
-
在 Redirect URI 下选择 Web 并输入
https://test-common-web.intlgame.com/jssdk/xboxlogincallback.html
,设置在成功授权后的 URI 跳转。 -
点击 Register 完成注册。
-
在 Manage 下的 Authentication,点击 Web 下的 Add URI。
-
输入
https://common-web.intlgame.com/jssdk/xboxlogincallback.html
为 URI 后点击 Save。 -
在 Manage 下的 Certificates & secrets,点击 Client secrets 下的 + New client secret。
-
完成必填项的填写,并点击 Add,添加密钥。
- Description:输入密钥的描述。
- Expires:选择密钥过期的时间,最长有效期为两年。在密钥过期之前,必须在 Azure Portal 中新建一个密钥并到 Player Network 控制台中进行配置。
-
记下密钥的 Value,此值只能在创建的时候查看。
客户端 ID 和密钥值为 Player Network 控制 台配置的必填项,客户端 ID 可从游戏的 Overview 页面中 Essentials 下的 Application (client) ID 字段确认。
更多关于其他第三方渠道接入 SDK 的信息,请参见 JavaScript SDK。
步骤1:引⼊ JavaScript SDK
项目联调阶段可以引⼊ SDK 联调版本包,该包仅用于集成测试。项目上线须引⼊ SDK 正式版本包。
目前已支持 npm
包方式和 CDN
方式。
- 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,
});
参数 | 类型 | 描述 | 备注 |
---|---|---|---|
env | string | SDK 环境 更多信息,请参见 获取部署集群信息。 | 必填 |
gameID | number | Player 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);
});