Use o método run() para executar todo o fluxo de verificação com uma única chamada. O método gerencia automaticamente a inicialização, captura e limpeza de recursos.
Para cenários que requerem maior controle sobre o fluxo:
const hub = ValidHub.createHub();try { // Passo 1: Inicializar o SDK await hub.init(config); // Passo 2: Executar a verificação quando necessário const result = await hub.startLivenessCheck(); // Processar resultado console.log('Resultado:', result);} finally { // Passo 3: Limpar recursos (obrigatório na API Avançada) await hub.teardown();}
Na API Avançada, é obrigatório chamar teardown() para liberar recursos
(câmera, memória, listeners). Use um bloco finally para garantir a limpeza
mesmo em caso de erro.
O nível de risco determina qual motor biométrico o backend seleciona automaticamente:
Valor
Motor Padrão
Descrição
LIVENESS_RISK_HIGH
FaceTec
Verificação mais rigorosa com liveness 3D ativo
LIVENESS_RISK_MEDIUM
FaceSDK
Verificação moderada com detecção de vivacidade
LIVENESS_RISK_LOW
FaceSDK
Verificação básica
A seleção do motor biométrico é feita automaticamente pelo backend com base no nível
de risco. Não é possível sobrescrever essa seleção no client-side.
Cada chamada ao SDK cria uma sessão no backend com os seguintes parâmetros padrão:
Parâmetro
Valor Padrão
Faixa Permitida
Descrição
TTL
300 segundos (5 min)
60 – 600 s
Tempo máximo de vida da sessão
Cada sessão permite uma única tentativa de captura. Se a sessão expirar ou a
captura falhar, o SDK retornará um erro do tipo SESSION_FAILED e uma nova
chamada deve ser realizada para criar uma sessão nova.
const config = { // ... outras configurações onProgress: (state) => { switch (state) { case 'uninitialized': console.log('SDK ainda não foi inicializado'); break; case 'initializing': mostrarLoader('Preparando sistema...'); break; case 'ready': esconderLoader(); console.log('Pronto para iniciar verificação'); break; case 'capturing': console.log('Captura em andamento...'); break; case 'closing': mostrarLoader('Finalizando...'); break; case 'error': esconderLoader(); console.error('Ocorreu um erro'); break; } },};
interface LivenessResult { sessionId: string; // ID único da sessão captureId: string; // ID único da captura verified: boolean; // Indica se a verificação foi bem sucedida status: 'completed' | 'failed' | 'expired'; // Status da verificação processingTime: number; // Tempo de processamento em milissegundos base64Data?: string; // Imagem capturada em Base64 (não disponível para todos os motores) failureReason?: string; // Motivo da falha (quando aplicável)}