跳到主要内容

年龄门控

年龄门控是一种机制,用于在允许访问年龄限制内容、功能或服务之前收集和验证用户的年龄。k-ID API 提供用于管理年龄门控和根据玩家的年龄和司法管辖区确定需要采取哪些操作的端点。

获取年龄门控要求

使用玩家的司法管辖区调用 /age-gate/get-requirements 以确定:

  • 是否应显示年龄门控(shouldDisplay
  • 批准了哪些年龄收集方法(approvedAgeCollectionMethods
  • 年龄阈值:
    • digitalConsentAge:玩家可以提供数字同意的最低年龄
    • civilAge:玩家被视为合法成年人的民事/合同年龄
    • minimumAge:访问平台/游戏所需的最低年龄
  • 是否需要年龄保证(ageAssuranceRequired

请求示例

GET /api/v1/age-gate/get-requirements?jurisdiction=US-CA
Authorization: Bearer your-api-key

响应示例

{
"shouldDisplay": true,
"ageAssuranceRequired": true,
"digitalConsentAge": 13,
"civilAge": 18,
"minimumAge": 0,
"approvedAgeCollectionMethods": [
"date-of-birth",
"age-slider",
"platform-account"
]
}

检查年龄以访问

收集玩家的年龄后,使用出生日期和司法管辖区调用 /age-gate/check 以确定下一步:

  • PROHIBITED:玩家的年龄低于游戏的最低年龄。应该阻止玩家继续。
  • CHALLENGE:玩家的年龄需要可验证父母同意。创建挑战,必须由可信成人批准。
  • PASS:玩家可以继续进入游戏。创建或返回会话。

请求示例

POST /api/v1/age-gate/check
Content-Type: application/json
Authorization: Bearer your-api-key

{
"jurisdiction": "US-CA",
"dateOfBirth": "2015-04-15"
}

CHALLENGE 响应示例

{
"status": "CHALLENGE",
"challenge": {
"challengeId": "683409f1-2930-4132-89ad-827462eed9af",
"oneTimePassword": "ABC123",
"type": "CHALLENGE_PARENTAL_CONSENT",
"url": "https://family.k-id.com/authorize?otp=ABC123"
}
}

PASS 响应示例

{
"status": "PASS",
"session": {
"sessionId": "608616da-4fd2-4742-82bf-ec1d4ffd8187",
"ageStatus": "LEGAL_ADULT",
"dateOfBirth": "2005-04-15",
"jurisdiction": "US-CA",
"permissions": [...],
"status": "ACTIVE"
}
}

出生日期格式

有关出生日期格式和要求的信息,请参阅核心概念部分的 年龄门控

默认权限

如果 /age-gate/get-requirements 响应 shouldDisplay = false,则不应显示年龄门控,玩家的出生日期未定义。在这种情况下,游戏仍然通过调用 /age-gate/get-default-permissions 为司法管辖区检索默认权限来创建 Session,这意味着权限在此司法管辖区中不因年龄而异。游戏中的某些功能可能基于司法管辖区对所有年龄受众都被禁止,因此游戏仍应查询 Session 权限以检查是否可以启用功能。