跳到主要内容
Didit 融资 750 万美元,打造身份与欺诈基础设施
Didit
返回博客
博客 · 2026年3月7日

使用绞杀者藤蔓模式与Didit迁移旧版身份验证 (ZH)

现代化旧版身份验证系统可能令人望而生畏。本文探讨了如何在Java/Spring Boot中使用绞杀者藤蔓模式,逐步迁移到Didit的先进API,最大限度地降低风险并确保无缝过渡。这种增量方法可以避免破坏性的大规模重写,同时利用Didit的AI原生能力。.

作者:Didit更新于
migrating-legacy-identity-verification-with-strangler-fig-didit.png

增量迁移策略绞杀者藤蔓模式允许分阶段迁移,新功能与旧系统并行构建,逐步替换旧组件,避免破坏性的大规模重写。

最小化风险和停机时间通过隔离新功能并选择性地路由流量,组织可以降低系统故障的风险,并在过渡期间保持服务的持续可用性。

利用现代API与Didit的API集成可以访问AI原生的身份验证功能,与过时系统相比,它提供了卓越的欺诈检测、合规性和用户体验。

Didit的模块化和开发者优先方法Didit平台提供了一个模块化的、API驱动的架构,并提供免费的核心KYC,使其成为增量采用和无缝集成到现有Spring Boot应用程序的理想选择。

旧版身份验证系统的挑战

许多组织依赖难以维护、扩展成本高昂且通常缺乏现代解决方案先进欺诈检测能力的旧版身份验证(IDV)系统。彻底改革的想法可能令人望而却步,导致停滞和风险增加。这些旧系统可能难以满足新的合规性要求,提供糟糕的用户体验,或者无法检测复杂的深度伪造和合成身份欺诈。传统的“大爆炸”式迁移,即一次性替换整个系统,充满了风险、潜在的停机时间和巨大的开发成本。这就是为什么更具战略性的增量方法变得无价。

介绍用于IDV迁移的绞杀者藤蔓模式

绞杀者藤蔓模式,由Martin Fowler著名地提出,提供了一个优雅的解决方案,通过在其外围构建新功能来逐步迁移旧系统,最终“绞杀”旧系统直到可以将其淘汰。对于身份验证,这意味着用对Didit等现代API的调用替换特定的IDV功能,而旧版应用程序的其余部分最初保持不变。这种模式特别适合Java/Spring Boot应用程序,允许开发人员逐步引入新服务和API调用。

核心思想是在旧系统前面放置一个外观或API网关。新的请求通过此网关路由,网关决定是使用新系统(Didit)处理它们还是将它们传递给旧系统。随着时间的推移,越来越多的功能迁移到新系统,旧组件被慢慢淘汰。这种方法最大限度地降低了风险,允许持续交付,并从新系统的功能中提供即时价值。

使用Spring Boot和Didit实现绞杀者藤蔓

让我们考虑一个Spring Boot应用程序中的实际场景。假设您有一个负责ID文档处理和活体检测的旧服务。您想用Didit的先进ID验证和被动与主动活体检测功能替换它。您可以引入一个新的Spring Boot服务,或现有服务中的一个组件,作为“绞杀者”。

第1步:创建代理/外观层

开发一个新的Spring组件,拦截用于身份验证的调用。此组件将包含决定是使用旧系统还是Didit的逻辑。例如,如果您只迁移新用户注册,您可以将这些注册路由到Didit,而现有用户的重新验证最初可能仍通过旧系统进行。


@Service
public class IdentityVerificationGateway {

    private final DiditApiClient diditApiClient;
    private final LegacyIdvService legacyIdvService;

    public IdentityVerificationGateway(DiditApiClient diditApiClient, LegacyIdvService legacyIdvService) {
        this.diditApiClient = diditApiClient;
        this.legacyIdvService = legacyIdvService;
    }

    public VerificationResult verifyIdentity(User user) {
        // Logic to decide whether to use Didit or legacy
        if (user.isNewUser() || featureFlags.isDiditEnabledFor(user.getRegion())) {
            // Call Didit API for ID Verification and Liveness
            return diditApiClient.performVerification(user);
        } else {
            // Fallback to legacy system
            return legacyIdvService.performVerification(user);
        }
    }
}

第2步:集成Didit的API

在您的DiditApiClient中,您将调用Didit强大的API端点。Didit的模块化架构意味着您可以选择您需要的确切身份原语。例如,要执行ID验证和活体检测,您通常会启动一个会话,然后处理结果。Didit的API真正以开发者为先,提供清晰的API和即时沙盒,以便快速集成。


@Service
public class DiditApiClient {

    private final RestTemplate restTemplate;
    private final String diditApiKey;
    private final String diditApiUrl;

    public DiditApiClient(@Value("${didit.api.key}") String diditApiKey,
                          @Value("${didit.api.url}") String diditApiUrl) {
        this.restTemplate = new RestTemplate();
        this.diditApiKey = diditApiKey;
        this.diditApiUrl = diditApiUrl;
    }

    public VerificationResult performVerification(User user) {
        HttpHeaders headers = new HttpHeaders();
        headers.set("x-api-key", diditApiKey);
        headers.setContentType(MediaType.APPLICATION_JSON);

        // Example: Create a session for ID Verification and Liveness
        // The workflow_id would be configured in Didit's Business Console
        // for your desired sequence of checks.
        String workflowId = "your-didit-workflow-id"; 
        Map<String, String> requestBody = Map.of("workflow_id", workflowId, "vendor_data", user.getUserId());

        HttpEntity<Map<String, String>> request = new HttpEntity<>(requestBody, headers);

        ResponseEntity<DiditSessionResponse> response = restTemplate.postForEntity(
            diditApiUrl + "/v3/session/", request, DiditSessionResponse.class);

        // Handle the session URL, redirect user, and process webhooks for results
        // This simplified example assumes synchronous results for brevity.
        return new VerificationResult(response.getBody().getSessionId(), "PENDING");
    }
}

请记住,Didit还提供了一个无代码的业务控制台,用于设计复杂的编排工作流,结合ID验证、被动与主动活体检测、1:1人脸匹配、AML筛选和地址证明等元素。这允许您定义一次验证流程,然后通过简单的API调用触发它,从而简化您的Spring Boot集成。

第3步:逐步流量转移和监控

一旦Didit集成到位,您可以逐步转移流量。从一小部分用户开始,进行A/B测试,或为特定群体启用它。密切监控性能、用户体验和验证准确性。Didit全面的分析和webhook功能使此监控过程高效,在用户进行验证时提供实时更新。随着信心的增长,您可以增加路由到Didit的流量,最终完全淘汰旧组件。

Didit如何提供帮助

Didit独特地定位,可以通过绞杀者藤蔓模式促进无缝迁移。我们的AI原生、开发者优先的身份平台提供模块化架构,使集成高级身份验证功能变得简单明了。通过Didit,您可以访问一套强大的工具:

  • ID验证(OCR、MRZ、条形码):准确地从全球身份文档中提取数据。
  • 被动与主动活体检测:通过先进的生物识别活体检测技术打击深度伪造和呈现攻击。
  • 1:1人脸匹配:确保出示ID的人是其合法所有者。
  • AML筛选与监控:通过对照制裁和PEP名单进行筛选,遵守全球法规。
  • 地址证明:高效验证住宅地址。
  • 年龄估算(保护隐私):适用于年龄限制行业,同时不损害隐私。
  • 电话与电子邮件验证:增强账户安全性并阻止欺诈。

Didit的优势显而易见:我们提供免费的核心KYC以帮助您入门,真正的模块化架构允许您仅集成所需的功能,以及提供尖端准确性和欺诈预防的AI原生方法。我们的平台没有设置费用,我们以开发者为先的理念确保了清晰的API和广泛的文档,以便快速集成,完美契合绞杀者藤蔓模式的增量特性。

准备好开始了吗?

准备好亲身体验Didit了吗?立即获取免费演示

使用Didit的免费套餐免费开始验证身份。

身份与欺诈基础设施。

一个 API 即可实现 KYC、KYB、交易监控和钱包筛选。5 分钟即可集成。

让 AI 总结此页面
使用绞杀者藤蔓模式和Didit迁移旧版身份验证.