可验证父母同意 (VPC)
本指南将引导您通过几个步骤实施 VPC 小部件,使您能够快速满足法规要求,同时为儿童及其父母提供流畅的用户体验。
使用 k-ID Dev Explorer,一个开源开发者沙箱,来测试 VPC 流程并在事件日志中查看所有流量。您也可以将其作为自己 VPC 实现的起点。
端到端小部件是一个全面的解决方案,在单个界面中处理完整的合规流程,在一个无缝体验中涵盖年龄门控、VPC、数据通知、权限和偏好设置。此小部件可以由父母在孩子的设备上或他们自己的设备上使用,为同意过程提供最大的灵活性。
什么是年龄门控?
年龄门控是一种机制,用于在允许访问年龄限制内容、功能或服务之前收集和验证用户的年龄。许多司法管辖区的法规要求年龄门控,以确保符合管理未成年人数字内容访问的法律。
年龄门控有几个重要目的:
- 法规合规性:满足不同司法管辖区验证的法律要求
- 内容保护:防止未成年人访问不当内容
- 数据隐私:根据 COPPA、GDPR-K 等法规确保正确处理儿童数据
- 父母控制:使父母能够就其子女的数字访问做出明智的决定
通过提供用户的司法管辖区,端到端小部件自动确定收集其年龄的最佳方法(如果尚未提供),并根据该司法管辖区的特定法规智能地确定是否需要 VPC。这确保了合规性,而无需您实施复杂的司法管辖区逻辑。
什么是可验证父母同意 (VPC)?
可验证父母同意 (VPC) 是一项法规要求,确保父母或可信成人可以为儿童访问数字内容、服务或功能提供知情同意。当儿童尝试访问年龄限制内容时,系统会创建一个挑战,需要父母批准才能授予访问权限。
VPC 流程通常包括:
- 年龄收集:通过适当的方法确定儿童的年龄
- 挑战创建:在需要父母批准时创建同意挑战
- 父母通知:通过各种渠道(电子邮件、二维码)通知父母
- 同意处理:父母审查并批准/拒绝请求
- 会话管理:根据同意结果创建或更新儿童的权限
先决条件
在开始之前,您需要:
- k-ID 产品:在 k-ID Compliance Studio 中创建并配置您的产品
- API 密钥:从 Compliance Studio 中您产品的开发者设置页面生成您的 API 密钥
- Webhook 端点(可选但推荐):设置一个安全的 HTTPS 端点以接收挑战和会话事件。更多详情,请参阅 Webhooks。
步骤 1:启动 VPC 流程
调用 /widget/generate-e2e-url API 创建处理完整 VPC 流程的端到端小部件 URL。这将返回一个唯一 URL,供用户完成年龄收集和父母同意过程。
使用 API 参考 和您的 API 密钥快速生成您的 VPC 小部件 URL。
对于您的实现,这应该是服务器到服务器的调用,以保护您的 API 密钥不被暴露在客户端代码中。
请求示例
POST /api/v1/widget/generate-e2e-url
Content-Type: application/json
Authorization: Bearer your-api-key
{
"jurisdiction": "US-CA"
}
配置标志
可选的 flags 参数允许您自定义要跳过的流程部分:
skipDataNotices:跳过数据通知和同意收集skipVerification:跳过验证步骤skipPermissions:跳过权限管理skipPreferences:跳过偏好设置
响应示例
{
"id": "7854909b-9124-4bed-9282-24b44c4a3c97",
"url": "https://family.k-id.com/widget?token=eyJhbGciOiJFUzM4NCIs..."
}
步骤 2:显示 VPC 小部件
使用返回的 URL 在您的网站或应用中创建 iframe。用户通过此界面完成年龄收集和可信成人同意过程,可用方法自动适应司法管辖区要求。

HTML 实现
<div id="vpc-container">
<iframe
id="vpc-widget"
src="WIDGET_URL"
width="100%"
height="600"
frameborder="0"
allow="camera;payment;publickey-credentials-get;publickey-credentials-create">
</iframe>
</div>
iframe 向用户呈现多种验证方法,例如:
- AgeKey:在初始验证过程后生成的可重用和匿名年龄证明。
- 面部年龄估计:使用设备摄像头进行隐私保护型年龄估计
- ID 文档验证:政府颁发的 ID 验证
可用方法取决于司法管辖区和您在 Compliance Studio 中的产品配置。更多详情,请参阅 验证方法
小部件向用户呈现:
- 年龄收集:符合司法管辖区要求的年龄收集方法
- 数据通知:根据 Compliance Studio 中的产品配置接受的数据通知
- 权限:根据 Compliance Studio 中的产品配置管理的权限
- 父母同意挑战:如果确定用户是未成年人,则会创建挑战以供可信成人批准
具体流程取决于司法管辖区和您在 Compliance Studio 中的产品配置。
步骤 3:处理挑战和会话事件
当为父母同意创建挑战时,您需要处理结果。实现应结合使用客户端和服务器端方法:客户端事件最适合控制 UI 元素,而对于数据完整性,实际结果应来自 webhook 或调用 /challenge/get-status。
客户端(DOM 事件)
使用 DOM 事件在创建或解决挑战时进行响应式 UI 更新。有关事件结构的详细信息,请参阅 Widget.AgeGate.Challenge。
const handleMessage = (event) => {
const message = event.data;
if (message.eventType === "Widget.AgeGate.Challenge") {
if (message.data.status === "PASS") {
// 父母批准同意 - 立即更新 UI
console.log("Consent approved:", message.data.sessionId);
updateUI(message.data.sessionId);
} else if (message.data.status === "FAIL") {
// 父母拒绝同意 - 立即更新 UI
console.log("Consent denied");
updateUI();
}
}
};
window.addEventListener("message", handleMessage);
服务器端(webhooks、API 调用)
使用 webhooks 或 API 调用进行数据完整性和可靠的状态管理。对于数据完整性,始终通过 webhook 事件或调用 /challenge/get-status 来验证结果,而不是仅依赖 DOM 事件。
Webhooks
有关 webhook 事件结构的详细信息,请参阅 Challenge.StateChange 和 Session.ChangePermissions。
配置您的 webhook 端点 以接收 Challenge.StateChange 和 Session.ChangePermissions 事件:
Challenge.StateChange 事件:
{
"eventType": "Challenge.StateChange",
"data": {
"id": "683409f1-2930-4132-89ad-827462eed9af",
"productId": 42,
"status": "PASS",
"sessionId": "0ad1641f-c154-4c2-8bb2-74dbd0de7723",
"approverEmail": "parent@example.com",
"kuid": "123456"
}
}
Session.ChangePermissions 事件:
{
"eventType": "Session.ChangePermissions",
"data": {
"id": "78c299b2-5c33-4bde-84fe-8fc950fc7a96",
"productId": 42
}
}
API 调用
使用挑战 ID 查询挑战状态,调用 /challenge/get-status:
GET /api/v1/challenge/get-status?id=683409f1-2930-4132-89ad-827462eed9af
Response:
{
"id": "683409f1-2930-4132-89ad-827462eed9af",
"status": "PASS",
"sessionId": "0ad1641f-c154-4c2-8bb2-74dbd0de7723"
}
Webhook 配置
对于 VPC 小部件,确保您的 webhook 端点配置为接收:
Challenge.StateChange:在父母同意被批准或拒绝时通知Session.ChangePermissions:在父母修改会话权限时通知
这些事件对于维护适当的访问控制并确保符合父母同意要求至关重要。
下一步是什么?
现在您已经实现了 VPC 小部件,探索这些资源以增强您的集成:
- API 参考文档:所有小部件和挑战 API 的详细文档
- Webhooks 设置:为生产系统实施强大的 webhook 处理
- 最佳实践:实施最佳实践以确保安全性和可靠的用户体验
- 上线前检查清单:在上线前审查要求
使用 k-ID 的 VPC 小部件,您可以在为家庭提供流畅、注重隐私的体验的同时,快速实现父母同意法规的合规性。