跳到主要内容

Web

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

前提条件

1. 在 Apple Developer Center 上配置 iOS 应用
1. 创建 App ID

创建一个 client_id 作为向 Apple 发送请求的来源。
iOS 应用的 client_id 为 App ID(Bundle ID)。

  1. 登录 Apple 开发者平台

  2. 在侧边栏中,点击 Certificates, Identifiers & Profiles

  3. 在侧边栏中,点击 Identifiers,然后点击蓝色添加图标(+)。

    图片:Apple 标识符

  4. 选择 Services IDs,然后点击 Continue

  5. 输入 DescriptionIdentifier

    • Description:游戏应用的名称或描述。
    • Identifier:网页应用的唯一标识符。

    图片:Register a new services ID on Apple Windows platform

  6. Capabilities 下,选择 Sign in with Apple,然后点击 Continue

  7. Return URLs 下,输入 Player Network 提供的重定向链接。

    图片:Register a new services ID on Apple Windows platform

  8. 点击 Save 后继续点击 ContinueRegister 创建网页登录的 Service ID。

2. 创建用于访问服务的密钥

创建用于计算 client_secret 的密钥和相应的 Key ID。

  1. Certificates, Identifiers & Profiles,点击侧边栏中的 Keys

  2. 点击蓝色添加图标(+)。

    图片:Apple 密钥

  3. Key Name 下,输入密钥的唯一名称。

  4. 选择 Sign in with Apple 旁边的复选框,然后点击 Configure

    图片:Apple Key Name

  5. Primary App ID 下,选择在 上一步 中创建的 Service ID,然后点击 保存

    图片:Apple Save Primary Key

  6. 点击 Continue

  7. 点击 Register 生成密钥,并记下 Key ID

  8. 点击 Download 下载密钥文件(只能下载一次,切勿丢失),该文件保存为文件后缀 .p8 的文本文件。

3. 创建描述文件

创建并下载描述文件,然后,在开发或打包环境中安装下载的描述文件。

4. 获取 Team ID
  1. 登录 Apple 开发者平台

  2. 在侧边栏中,点击 Membership 来查看 Team ID

    图片:Apple Team ID

有关 Apple 开发者平台配置的更多信息,请参见 What the Heck is Sign In with Apple?

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

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

步骤1:引⼊ JavaScript SDK

警告

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

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

$ npm install @intlsdk/account-api

步骤2:使用 SDK

警告

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

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

步骤3:实现网页登录

实例化 accountApi 组件后,调用 thirdAuthorize 接口申请 Apple 渠道的访问令牌。

accountApi.ThirdAuthorize({
third_type: 'apple',
extra: {
appleAppId: 'xxxxx', // Required for apple login
}
}).then(
(res) => {
console.log(res);
});

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

accountApi.intlAuthorize({
third_type: 'apple',
channel_info: {
code: "EAAI2lTrXAZBwBAC"
user_name: "EAAI2lTrXAZBwBAC"
}
}).then(
(res) => {
console.log(res);
});

调用 intlLogout 接口登出网站。

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