跳至主要内容

多重身份验证

概述

阿哈利姆提供了一种多重身份验证机制,允许玩家通过多个唯一标识字段的组合来完成身份验证过程。 通过这种验证机制,您可以在游戏枢纽自定义一个登录界面,要求玩家提供多项身份信息,从而完成更加严格的身份验证流程。

例如,您可以设置包含以下多个验证字段的多重身份验证:

  • account_id
  • server_id
  • character_id
警告

请注意,以上列出的验证字段仅为参考示例,您可以根据自身游戏的特点和需求自定义实际使用的身份字段。

前提条件

  • 您需要拥有阿哈利姆账户的访问权限。
  • 您的账户需要具有创建和管理玩家身份的管理员权限。
  • 游戏设置 中配置了复合用户 ID 登录类型。

第 1 步:配置处理部分身份信息的 player.lookup Webhook

当游戏枢纽玩家提供初步身份信息时,阿哈利姆会向您的服务器发送查找玩家 Webhook 请求。您的服务器需要根据这些部分身份信息,返回与之关联的完整玩家数据,以便系统继续后续身份验证步骤。

Webhook 请求示例:

{
"account_id": "123456"
}

Webhook 响应示例:

{
"status": "ok",
"data": [
{
"name": "PlayerOne",
"avatar_url": "https://example.com/avatar1.png",
"player": {
"account_id": "123456",
"server": {"id": "gerund-23", "name": "Gerund 23"},
"character_id": "4tgk-kj8xz"
},
},
{
"name": "PlayerTwo",
"avatar_url": "https://example.com/avatar2.png",
"player": {
"account_id": "123456",
"server": {"id": "goron-73", "name": "Goron 73"},
"character_id": "4d4r-iopb2"
},
},
]
}

失败情况下的响应示例:

即使是失败情况,也应返回 200 HTTP 状态码,同时在响应体中包含以下 JSON 内容:

{
"status": "error",
"code": "not_found",
"message": "未能找到该账户信息"
}

可能出现的错误代码列表:

  • not_found:系统中不存在该账户或玩家记录。
  • invalid_signature:请求的安全签名验证失败。
  • validation_error:请求中包含的数据格式或内容不符合要求。
  • banned:该账户或玩家已被系统封禁。

您的服务器必须正确响应此 Webhook 请求,提供完整的身份验证信息,这样游戏枢纽登录表单才能展示相关选项,引导玩家完成多重身份验证过程。

第 2 步:实现 player.verify 多重身份验证的 Webhook 处理

当玩家完成选择并提交完整的身份信息后,阿哈利姆会向您的服务器发送验证玩家 (player.verify) Webhook 请求。您需要验证这些完整的身份信息组合,并决定是否授权该玩家访问。

Webhook 请求示例:

{
"player": {
"account_id": "123456",
"server_id": "gerund-23",
"character_id": "4tgk-kj8xz"
}
}

Webhook 响应示例:

{
"status": "ok",
"data": {
"name": "PlayerOne",
"avatar_url": "https://example.com/avatar.png",
"attributes": {
"level": 2
},
"country": "US",
"player": {
"account_id": "123456",
"server": {"id": "gerund-23", "name": "Gerund 23"},
"character_id": "4tgk-kj8xz"
}
}
}

失败情况下的响应示例:

即使是失败情况,也应返回 200 HTTP 状态码,同时在响应体中包含以下 JSON 内容:

{
"status": "error",
"code": "not_found",
"message": "系统中不存在该玩家记录"
}

可能出现的错误代码列表:

  • not_found:系统中不存在该账户或玩家记录。
  • invalid_signature:请求的安全签名验证失败。
  • validation_error:请求中包含的数据格式或内容不符合要求。
  • banned:该账户或玩家已被系统封禁。

第 3 步:配置支持自动登录的深层链接

您可以创建包含所有多重身份验证字段的深层链接 URL,使玩家能够点击 URL 后直接完成身份验证并自动登录游戏枢纽。

示例:

https://<GAME_HUB_URL>/go/login?account_id=123456&server_id=gerund&character_id=4tgk-kj8xz

当玩家点击或访问此 URL 时,游戏枢纽会自动提取 URL 中的身份验证参数,并使用这些信息执行身份验证流程。

实施这一可选功能后,玩家可以轻松地在游戏内外切换,无缝管理多个相关角色,提升游戏的易用性和整体体验。

需要技术支持?
联系我们的集成技术团队: [email protected]