使用 Didit 与 Temporal.io 编排自适应摩擦:TypeScript 开发指南 (ZH)
了解 TypeScript 开发者如何利用 Didit API 和 Temporal.io 构建强大、自适应的身份验证工作流。本指南涵盖了多步骤 KYC、活体检测和 AML 检查的集成,确保无缝的用户体验。.

动态验证流程通过根据实时风险评估动态调整摩擦程度,实施自适应身份验证,确保在安全性和用户体验之间取得平衡。
Temporal.io 的状态管理利用 Temporal.io 的持久执行功能来管理复杂、长时间运行的身份验证工作流,在分布式系统中无缝处理重试、超时和人工干预。
Didit API 实现核心身份检查通过简洁的 API 集成 Didit 全面的身份验证产品套件,包括身份验证、活体检测和 AML 筛选,为您的自适应工作流提供核心组件。
模块化和 AI 原生优势Didit 模块化、AI 原生架构和无代码业务控制台支持工作流的快速部署和定制,提供免费的核心 KYC 和零设置费,实现可扩展的身份解决方案。
身份验证中自适应摩擦的挑战
在当今的数字环境中,平衡用户体验与强大安全性至关重要。传统的静态身份验证流程往往无法适应不同的风险状况,导致低风险用户摩擦过度,或高风险用户安全性不足。理想的解决方案是采用自适应摩擦模型,即根据上下文因素和实时风险评估动态调整验证力度。这需要复杂的编排,管理多步骤流程、潜在的人工审核和异步数据流。
从零开始构建这样的系统面临巨大挑战,特别是对于在分布式环境中工作的 TypeScript 开发者。您需要管理长时间运行流程的状态、优雅地处理故障、实现重试,并无缝集成各种身份检查。这正是 Didit 的 AI 原生身份平台与 Temporal.io 的持久执行功能强大结合的用武之地。
Temporal.io:复杂工作流的编排层
Temporal.io 是一个功能强大的开源平台,用于构建和运行容错、可扩展的分布式应用程序。对于身份验证而言,它充当完美的编排层,允许开发者将复杂、长时间运行的工作流定义为代码。设想一个用户入职流程,可能涉及:
- 初始身份验证(Didit 的 OCR、MRZ、条形码)
- 用于欺诈预防的被动和主动活体检测
- 与证件照片进行 1:1 人脸比对
- 根据初始风险评分进行有条件的 AML 筛选
- 可选的地址证明或电话和电子邮件验证
- 如果自动化检查发现异常,可能需要代理进行人工审核
这些步骤中的每一个都可以是 Temporal 工作流中的一个活动。Temporal 确保即使您的服务崩溃、网络请求失败或外部 API 暂时不可用,工作流状态也会被保留,并且执行会从中断的地方精确恢复。这对于保持流畅的用户旅程和确保合规性至关重要,特别是对于可能因人工干预而持续数分钟、数小时甚至数天的流程。
使用 TypeScript,您可以定义您的 Temporal 工作流和活动,并具有强类型,从而提高代码质量和可维护性。这使您能够直接在工作流定义中建模您的自适应摩擦逻辑,从而更容易实现条件分支和对验证步骤的动态调整。
集成 Didit API 进行核心身份检查
Didit 通过简洁的 API 提供所有身份验证需求的基础构建模块。将 Didit 集成到您的 Temporal 工作流中非常简单。例如,当用户启动验证会话时,您的 Temporal 工作流可以调用 Didit 的 API,为特定的工作流 ID 创建一个会话。Didit 的业务控制台允许您轻松创建这些工作流,结合了身份验证、被动和主动活体检测以及AML 筛选和监控等功能。您甚至可以使用 Didit 的年龄估算功能用于年龄限制服务,或使用NFC 验证功能增强安全性。
Didit 的 API 在创建会话时提供了一个 workflow_id 参数,允许您触发预配置的验证流程。然后,您的 Temporal 工作流可以监听 Didit 的 webhook,这些 webhook 会将每个验证步骤或整个会话完成的状态和结果通知您的系统。这种异步通信由 Temporal 的事件驱动架构完美处理,无需复杂的轮询逻辑。
例如,一个 Temporal 活动可以负责启动 Didit 会话并等待特定的 webhook 事件。如果 webhook 指示身份验证成功但活体检测分数较低,您的工作流可以有条件地触发一个附加步骤,例如人工审核活动或请求更多证据,从而展示真正的自适应摩擦。
使用 TypeScript 构建自适应摩擦工作流
让我们考虑一个实际的例子。一个新用户注册了金融服务。我们不希望采用一刀切的 KYC 流程,而是希望进行自适应。低风险用户(例如,来自受信任的 IP 地址,交易金额低)可能只需要基本的身份验证和被动活体检测。高风险用户(例如,来自可疑 IP,交易金额高,或之前有欺诈标记)可能需要NFC 验证、主动活体检测、AML 筛选和强制性人工审核。
使用 Temporal 和 TypeScript,您可以定义一个以用户上下文作为输入的主工作流。然后,该工作流可以使用条件逻辑选择不同的 Didit 工作流 ID,或根据风险评估链式调用多个 Didit API。例如:
// 示例 Temporal 工作流片段
import { proxyActivities } from '@temporalio/workflow';
import type * as activities from './activities';
const { initiateDiditSession, waitForDiditWebhook, performManualReview } = proxyActivities({ startToCloseTimeout: '5 minutes' });
export async function onboardingWorkflow(userId: string, riskScore: number): Promise<string> {
let diditWorkflowId: string;
if (riskScore < 30) {
// 低风险:带有被动活体检测的基本 KYC
diditWorkflowId = 'uuid-for-basic-kyc-workflow';
} else if (riskScore < 70) {
// 中风险:带有主动活体检测和人脸比对的标准 KYC
diditWorkflowId = 'uuid-for-standard-kyc-workflow';
} else {
// 高风险:带有 NFC、AML 和人工审核的增强 KYC
diditWorkflowId = 'uuid-for-enhanced-kyc-workflow';
}
const sessionId = await initiateDiditSession(userId, diditWorkflowId);
const verificationResult = await waitForDiditWebhook(sessionId);
if (verificationResult.status === 'PENDING_MANUAL_REVIEW') {
await performManualReview(sessionId);
}
return `Verification for user ${userId} completed with status: ${verificationResult.status}`;
}
此片段展示了 Temporal 如何编排流程,而 Didit 处理实际的身份检查。initiateDiditSession 和 waitForDiditWebhook 将是封装 Didit API 调用和 webhook 监听逻辑的 Temporal 活动。performManualReview 活动可以为您的支持团队触发一个内部工具,而 Temporal 将等待其完成,确保整个过程稳定且可追溯。
Didit 如何提供帮助
Didit 是 AI 原生、开发者优先的身份平台,为编排自适应摩擦工作流提供了强大的构建模块。我们的模块化架构允许您轻松地将身份验证(OCR、MRZ、条形码)、被动和主动活体检测、1:1 人脸比对和人脸搜索以及AML 筛选和监控等身份检查功能即插即用到您的 Temporal 工作流中。Didit 的无代码业务控制台使您能够设计全面的工作流,结合各种功能并定义阈值,而无需编写一行代码。然后,这些预配置的工作流可以通过我们简洁的 API 触发,从而简化集成。
Didit 的优势包括免费的核心 KYC、灵活的按成功检查付费模式以及零设置费,使其适用于各种规模的企业。我们的 AI 原生方法确保了高准确性和欺诈检测能力,而我们的全球设计支持跨多个国家和文档类型的验证。通过利用 Didit,您可以专注于 Temporal 中的核心业务逻辑,并确信底层的身份验证由领先、强大的平台处理。
准备好开始了吗?
准备好亲身体验 Didit 的强大功能了吗?立即获取免费演示。
使用Didit 的免费套餐,免费开始验证身份。