Construir Listeners de Webhook Didit com AWS Lambda e API Gateway (PT-PT)
Aprenda a criar listeners de webhook Didit robustos e escaláveis usando TypeScript, AWS Lambda e API Gateway (Serverless Framework). Este guia abrange a configuração, verificação de assinatura e processamento seguro de eventos.

Integração Segura de WebhooksImplementar uma verificação robusta de assinatura de webhook usando a chave secreta partilhada da Didit é crucial para garantir a integridade e autenticidade dos dados recebidos da plataforma Didit, protegendo contra spoofing e adulteração.
Arquitetura Serverless EscalávelAproveitar o AWS Lambda e o API Gateway com o Serverless Framework oferece uma solução altamente escalável e económica para lidar com eventos de webhook da Didit, ajustando-se automaticamente a cargas variáveis sem intervenção manual.
Fluxos de Trabalho de Identidade em Tempo RealProcessar webhooks da Didit em tempo real permite respostas imediatas aos resultados da verificação de identidade, facilitando o onboarding dinâmico de utilizadores, a deteção de fraude e ações de conformidade, melhorando a eficiência operacional.
Abordagem Developer-First da DiditA Didit simplifica a gestão de webhooks com documentação de API clara, rotação fácil de chaves secretas e uma arquitetura modular, permitindo que os programadores criem e implementem rapidamente fluxos de trabalho orientados por eventos personalizados com KYC Core Gratuito e sem taxas de configuração.
O Poder dos Webhooks na Verificação de Identidade
No mundo da verificação de identidade, o feedback em tempo real é fundamental. Quer esteja a integrar novos utilizadores, a realizar rastreio AML ou a verificar a idade, saber o resultado de uma sessão de verificação no momento em que acontece permite uma tomada de decisão dinâmica e experiências de utilizador contínuas. É aqui que os webhooks se destacam. Em vez de consultar constantemente uma API para atualizações de estado, a Didit envia uma notificação automatizada para o seu endpoint especificado sempre que ocorre um evento significativo, como a conclusão de uma sessão de verificação ou a alteração de um estado. Este modelo baseado em push é mais eficiente, reduz a sobrecarga de chamadas de API e garante que os seus sistemas estão sempre atualizados com os últimos resultados de verificação de identidade.
A integração das poderosas capacidades de verificação de identidade da Didit envolve frequentemente a configuração de um listener de webhook fiável. Este listener atua como os olhos e ouvidos da sua aplicação, recebendo atualizações críticas sobre o estado da Verificação de ID, Deteção de Vivacidade ou resultados de Rastreio AML. Um sistema de webhook bem implementado é um pilar das arquiteturas modernas orientadas por eventos, fornecendo a agilidade necessária para responder rapidamente aos resultados da verificação e manter uma jornada de utilizador fluida.
Configurar o Seu Listener de Webhook Serverless com AWS Lambda e API Gateway
Construir um listener de webhook escalável e resiliente pode ser complexo, mas com o AWS Lambda e o API Gateway, juntamente com o Serverless Framework, torna-se notavelmente simples. Esta abordagem serverless significa que não precisa de gerir nenhuns servidores; a AWS trata de toda a infraestrutura, escalando o seu listener automaticamente com base na procura. Para o nosso listener de webhook da Didit, usaremos TypeScript para segurança de tipos e produtividade do programador.
Pré-requisitos:
- Uma conta AWS
- Node.js e npm instalados
- Serverless Framework instalado (
npm install -g serverless) - Uma conta Didit com chaves de API e um segredo de webhook (de Consola Didit -> Definições -> Chaves de API)
Configuração do Projeto:
Primeiro, crie um novo projeto Serverless:
serverless create --template aws-nodejs-typescript --path didit-webhook-listener
cd didit-webhook-listener
npm install
Agora, vamos configurar serverless.yml para definir a nossa função Lambda e o endpoint do API Gateway:
service: didit-webhook-listener
provider:
name: aws
runtime: nodejs18.x
stage: dev
region: us-east-1
environment:
DIDIT_WEBHOOK_SECRET: ${ssm:/didit/webhook/secret}
functions:
handleDiditWebhook:
handler: src/handler.handleDiditWebhook
events:
- http:
path: webhook/didit
method: post
cors: true
plugins:
- serverless-offline
- serverless-dotenv-plugin
- serverless-ssm-fetch
Repare que estamos a obter o DIDIT_WEBHOOK_SECRET do AWS SSM Parameter Store, que é uma boa prática para gerir segredos. Terá de armazenar o seu Segredo de Webhook da Didit lá. A Didit permite-lhe rodar facilmente a sua chave secreta via API ou a Consola Didit, garantindo uma boa higiene de segurança.
Implementação de Processamento Seguro de Webhook em TypeScript
O aspeto mais crítico de qualquer listener de webhook é a segurança. Deve verificar se os pedidos recebidos realmente se originam da Didit e não foram adulterados. A Didit fornece uma chave secreta partilhada para este fim, que usa para validar a assinatura HMAC incluída no cabeçalho x-didit-signature do webhook.
Crie src/handler.ts:
import { APIGatewayProxyHandler } from 'aws-lambda';
import * as crypto from 'crypto';
const DIDIT_WEBHOOK_SECRET = process.env.DIDIT_WEBHOOK_SECRET || '';
export const handleDiditWebhook: APIGatewayProxyHandler = async (event) => {
if (!event.body) {
return { statusCode: 400, body: 'No body received' };
}
const signature = event.headers['x-didit-signature'];
if (!signature) {
console.warn('Webhook received without x-didit-signature header.');
return { statusCode: 403, body: 'Missing signature' };
}
try {
const expectedSignature = crypto
.createHmac('sha256', DIDIT_WEBHOOK_SECRET)
.update(event.body)
.digest('hex');
if (expectedSignature !== signature) {
console.error('Webhook signature mismatch. Expected:', expectedSignature, 'Received:', signature);
return { statusCode: 403, body: 'Invalid signature' };
}
const payload = JSON.parse(event.body);
console.log('Successfully verified and parsed Didit webhook:', payload);
// Implemente a sua lógica de negócio aqui com base no payload do webhook
// Exemplos: atualizar o estado do utilizador, desencadear ações adicionais, armazenar resultados
// Por exemplo, se for uma conclusão de Verificação de ID:
// if (payload.event_type === 'session.completed' && payload.data.workflow_type === 'kyc') {
// console.log('Sessão KYC Concluída para vendor_data:', payload.data.vendor_data);
// // Processar resultados KYC, atualizar perfil do utilizador, etc.
// }
return { statusCode: 200, body: 'Webhook recebido e processado' };
} catch (error) {
console.error('Erro ao processar o webhook:', error);
return { statusCode: 500, body: 'Internal server error' };
}
};
Neste código, calculamos um hash HMAC SHA256 do corpo do pedido bruto usando o seu DIDIT_WEBHOOK_SECRET e comparamo-lo com o cabeçalho x-didit-signature fornecido pela Didit. Se não corresponderem, o pedido é rejeitado, impedindo acesso não autorizado ou eventos falsificados. Este processo de verificação robusto é essencial para manter a segurança e a integridade dos seus fluxos de trabalho de verificação de identidade, especialmente ao lidar com dados sensíveis dos serviços de Verificação de ID, Comparação Facial ou Rastreio AML da Didit.
Configurar a Didit para Enviar Webhooks
Assim que a sua função Lambda estiver implementada e tiver um URL de endpoint do API Gateway, o passo final é indicar à Didit para onde enviar os seus webhooks. Isto pode ser feito facilmente através da API de Gestão da Didit ou da Consola de Negócios da Didit.
Via API de Gestão da Didit:
Pode atualizar programaticamente a sua configuração de webhook usando o endpoint PATCH /v3/webhook/. Isto permite-lhe definir o seu webhook_url, especificar uma webhook_version (v3 é recomendado) e até rodar a sua secret_shared_key de forma segura.
curl -X PATCH https://verification.didit.me/v3/webhook/ \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_DIDIT_API_KEY" \
-d '{
"webhook_url": "YOUR_API_GATEWAY_ENDPOINT",
"webhook_version": "v3"
}'
Substitua YOUR_DIDIT_API_KEY pela sua chave de API Didit real e YOUR_API_GATEWAY_ENDPOINT pelo URL fornecido pelo AWS API Gateway após implementar a sua função Serverless.
Via Consola de Negócios da Didit:
Alternativamente, navegue até à Consola Didit, vá a Definições -> Webhooks, e simplesmente cole o seu URL de endpoint do API Gateway no campo designado. Também pode ver e rodar a sua chave secreta de webhook aqui. O design modular da Didit garante que a configuração destas integrações vitais é direta, permitindo-lhe focar-se na construção da sua aplicação principal.
Como a Didit Ajuda
A Didit oferece uma plataforma de identidade nativa de IA e com foco no programador que torna a integração de verificação de identidade avançada simples e segura. A nossa arquitetura modular permite-lhe escolher os componentes exatos de que precisa, desde Verificação de ID (OCR, MRZ, códigos de barras) e Deteção de Vivacidade Passiva e Ativa até Comparação Facial 1:1, Rastreio e Monitorização AML, e Estimativa de Idade. Ao oferecer KYC Core Gratuito e sem taxas de configuração, a Didit capacita empresas de todos os tamanhos a implementar soluções de identidade robustas sem custos proibitivos.
A nossa documentação abrangente da API e o ambiente de sandbox instantâneo garantem que os programadores podem começar rapidamente, e o nosso sistema de webhook, como demonstrado, foi projetado para fiabilidade e segurança. Com a Didit, tem acesso a uma rede de verificação global, fluxos de trabalho orquestrados e dados de identidade estruturados, tudo entregue através de APIs limpas. Isto significa que pode construir com confiança listeners de webhook personalizados que se integram perfeitamente com o poderoso backend da Didit, garantindo atualizações em tempo real para todas as suas necessidades de verificação de identidade.
Pronto para Começar?
Pronto para ver a Didit em ação? Obtenha uma demonstração gratuita hoje.
Comece a verificar identidades gratuitamente com o nível gratuito da Didit.