XMDT(身份验证)
XMDT 是面向 copub 游戏的身份验证:姓名、出生日期、手机号码(通过 OTP 验证)以及同意书(consent)。这是一个独立的 SDK —— alogame-kyc-sdk —— 不属于 SDK v2,集成 v2 也不会自动获得它。
| 环境 | Base URL |
|---|---|
| Dev | https://api-xmdt.dev.alogame.vn |
| Prod | https://api-xmdt.alogame.vn |
两者都已上线。你的 gameId 必须先由 Alogame 运营方开通 XMDT,两个环境才能使用——参见服务器集成。
界面长什么样
SDK 自带的界面——竖屏时是底部弹出层,横屏时是居中对话框。Android 和 iOS 上完全一致。


为什么会有这个机制
玩家身份数据(姓名、出生日期、手机号码)绝不能经过你的游戏服务器。Copub 游戏服务器由开发者自行搭建,不在 Alogame 的管控范围内,因此无法审计该服务器记录或保留了什么内容。XMDT 的整体设计原则就是:这些数据只走设备 → Alogame 直连,你的服务器唯一涉及的环节,是一次已签名的调用,并且这次调用本身不包含任何这类数据。
各方分别实现什么
| 需要实现 | 能看到玩家 PII 吗? | |
|---|---|---|
| 你的游戏服务器 | 一次已签名的 HTTP 调用,用于生成(mint)session token——其响应也会告诉你该玩家是否已经验证过 | 否 |
| 你的游戏客户端(Android/iOS) | 三个 SDK 调用:init、setGameRole、show | 否——SDK 自己管理自己的界面 |
| 玩家的设备 | 剩下的一切——真正的姓名/出生日期/手机号/OTP 表单 | —— |
你的客户端从不直接调用 Alogame 的身份认证 API,你的服务器也从不会看到姓名、出生日期、手机号码或 OTP 验证码。双方始终只处理不透明(opaque)的 token。
整体流程
最后一步只是一个界面信号,不是证明:被修改过的客户端可以随时自行上报 Success。不要只依赖这一步——在真正需要信任这个答案的那个时刻(例如让玩家进入一场对局之前),再次调用 POST /xmdt/session,并从这次响应中读取 xmdtCompleted。这仍然是同一种经 HMAC 签名的服务器对服务器调用;该字段之所以可信,是因为它直接来自 Alogame,从未经过玩家设备转发。参见服务器集成。
下一步
- 服务器集成 —— 你的服务器唯一需要的调用,同时用于生成 session 和检查真实验证状态。
- Android —— 安装 SDK 与三步调用集成。
- iOS —— 安装 SDK 与三步调用集成。
- Unity —— 封装两套原生 SDK 的 UPM 包;无需改动 Gradle 或 Xcode。
- Cocos Creator —— 纯 TypeScript,完全没有原生代码;无需真机即可在编辑器中运行。
什么时候调用 show()
完全由你决定——SDK 本身不强制设卡,ekycx 也不知道也不关心你在什么时候调用它。常见做法:
- 首次登录时,在让新玩家进入游戏之前。
- 在玩家第一次付费之前。
- 从设置/账号菜单中触发,作为可选项。
无论你选择哪种方式,你服务器生成的 session 都会告诉 SDK 这个表单是否可以被关闭(xmdtRequired)——参见服务器集成。