Face Liveness e Face Authenticator
Permite integrar verificação facial aos aplicativos, proporcionando uma experiência segura e fluida de autenticação do usuário.
Vivacidade facial e autenticador facial
O SDK Web CafFaceLiveness fornece detecção de vivacidade facial com suporte a vários provedores, cada um oferecendo recursos e capacidades diferentes. O SDK direciona automaticamente para o provedor apropriado com base na configuração do seu token mobile.
Provedores compatíveis
Caf
Validação de vivacidade em 2D usando as soluções da Caf
FaceTec
Tecnologia de detecção de vivacidade 2D da FaceTec
iProov
Detecção de vivacidade com as tecnologias GPA e LA
Payface
Tecnologia de verificação facial da Payface
Início rápido
1. Instalação
Inclua o script do SDK no seu arquivo HTML:
<script src="https://repo.combateafraude.com/javascript/release/caf-face-liveness/0.17.2/caf-face-liveness_0.17.2.umd.js"></script>Ou inclua-o via JavaScript:
const sdkScript = document.createElement("script");
sdkScript.src =
"https://repo.combateafraude.com/javascript/release/caf-face-liveness/0.17.2/caf-face-liveness_0.17.2.umd.js";
document.body.appendChild(sdkScript);Você também pode baixar o arquivo do SDK a partir do Caf CDN e então incluí-lo diretamente no seu projeto. Isso é útil se você preferir hospedar o arquivo do SDK ou se quiser evitar carregá-lo de uma CDN.
2. Uso básico
Exemplo completo
Aqui está um exemplo HTML pronto para uso:
Referência do SDK
Inicialização
Inicializa o SDK com a configuração fornecida.
sdkToken
string
Obrigatório
Token do SDK para autenticação
personId
string
Obrigatório
Identificador único do usuário
config
object
Opcional
Opções de configuração do SDK.
Consulte a Opções de configuração seção para mais detalhes.
customization
object
Opcional
Opções de personalização de aparência e texto.
Consulte a Opções de personalização seção para mais detalhes.
Opções de configuração
htmlContainerId
string
Obrigatório (iProov)
ID do contêiner HTML para a interface do SDK. Obrigatório somente quando o provedor selecionado for iProov.
iProov
enableDebugMode
boolean
Opcional
Ative o modo de depuração para desenvolvimento
Todos os provedores
performFaceAuthentication
boolean
Opcional
Se deve realizar a autenticação facial junto com a detecção de vivacidade
Ativar a autenticação facial requer um rosto previamente registrado para o personId. Consulte a Autenticação facial seção para mais detalhes.
Todos os provedores
idioma
string
Opcional
Idioma da interface. Valores suportados: "en_US", "es_MX", "pt_BR"
Todos os provedores
disableAnalytics
boolean
Opcional
Desativar o rastreamento de analytics
Todos os provedores
cameraPreviewFilter
string
Opcional
Filtro para a pré-visualização da câmera. Valores suportados: "shaded", "classic", "vibrant", "clear", "blur"
Ao usar o filtro de câmera "clear" com o GPA ativado, o SDK não poderá ser executado e lançará um erro. Se o GPA estiver ativado, certifique-se de usar uma opção diferente de filtro de câmera.
iProov
reverseProxy
object
Opcional
Configuração de proxy reverso.
Consulte a Configuração de proxy reverso seção para mais detalhes.
iProov
Opções de personalização
appearance.captureButtonIcon
string
URL do ícone do botão de captura
Caf, FaceTec
appearance.captureIconSize
string
Tamanho do ícone do botão de captura
Caf, FaceTec
appearance.captureButtonColor
string
Cor do botão de captura
Caf, FaceTec
appearance.fontFamily
string
Família de fontes da interface
Caf, FaceTec
startButton.label
string
Texto do botão Iniciar
iProov
startButton.color
string
Cor do texto do botão Iniciar
iProov
startButton.backgroundColor
string
Cor de fundo do botão Iniciar
iProov
startButton.borderRadius
string
Raio da borda do botão Iniciar
iProov
startButton.border
string
Estilo da borda do botão Iniciar
iProov
startButton.padding
string
Preenchimento do botão Iniciar
iProov
startButton.margin
string
Margem do botão Iniciar
iProov
messages.title
string
Texto do título da interface
Caf, FaceTec
messages.loading
string
Mensagem de carregamento durante a captura
Caf, FaceTec
messages.errors.captureFailed
string
Mensagem de erro quando a captura falha
Caf, FaceTec
Tratando erros de inicialização
Importante: A partir da versão 0.13.0, o tratamento de erros do SDK mudou. Revise e atualize sua integração para se alinhar aos novos nomes e comportamento dos erros.
Erros que podem ocorrer durante o init() método:
CafSdkInitError
Ocorreu um erro durante a inicialização do SDK (por exemplo, parâmetros obrigatórios ausentes).
CafSdkSessionError
Erro ao criar a sessão para realizar a vivacidade ou a autenticação facial. Verifique se o token fornecido é válido e não expirou.
CafUnknownError
Ocorreu um erro interno desconhecido
Quaisquer outros erros inesperados serão lançados como padrão do JavaScript Erro classe.
Exemplo:
Execução
Executa o processo de detecção de vivacidade facial.
options
object
Opcional
Opções para o método run.
Consulte a Opções de execução seção para mais detalhes.
Opções de execução
cancelPromise
Promise<void>
Promise que é resolvida quando a operação deve ser cancelada.
onCaptureProcessingStart
function
Callback chamado quando o processamento da captura começa.
onCaptureProcessingEnd
function
Callback chamado quando o processamento da captura termina.
Retorna
O método retorna um Promise<string> que é resolvida com um string de token JWT contendo o resultado da execução.
Importante: Os campos descritos abaixo estão contidos no payload decodificado deste token JWT. Você deve decodificar e verificar o token JWT para acessar esses campos.
Estrutura do payload JWT
Após decodificar o JWT, o payload contém um objeto com as seguintes propriedades:
imageUrl(string): URL temporária da imagem capturadaisAlive(boolean): Indica se a verificação de vivacidade foi bem-sucedidaisMatch(boolean): Indica se a autenticação facial foi bem-sucedida (se ativada)sessionId(string): Identificador único da sessão da execuçãopersonId(string): O ID da pessoa usado para a execução
Tratando erros de execução
Importante: A partir da versão 0.13.0, o tratamento de erros do SDK mudou. Revise e atualize sua integração para se alinhar aos novos nomes e comportamento dos erros.
Erros que podem ocorrer durante o run() método:
CafCameraPermissionError
Erro ao obter permissão da câmera
CafCameraPermissionDeniedError
Permissão da câmera negada pelo usuário
CafCameraUnsupportedError
A câmera não é suportada pelo navegador/dispositivo
CafSdkRunError
Ocorreu um erro durante a execução do SDK
CafSdkCanceledError
Execução do SDK cancelada pelo usuário ou cancelPromise
CafFaceLivenessError
Erro durante a validação de vivacidade
CafFaceAuthenticationError
Erro durante a autenticação facial
CafFaceNotFoundError
Nenhum rosto registrado foi encontrado para o usuário
CafUnknownError
Ocorreu um erro interno desconhecido
CafUnsupportedError
O SDK não é suportado neste dispositivo, navegador ou sistema operacional.
CafDeviceMotionPermissionDeniedError
Permissão de movimento do dispositivo negada pelo usuário.
Quaisquer outros erros inesperados serão lançados como padrão do JavaScript Erro classe.
Exemplo:
Descarte
Limpa os recursos do SDK. Deve ser chamado quando o SDK não for mais necessário.
Exemplo
Produtos
Vivacidade Facial
O SDK fornece detecção de vivacidade facial para garantir que o usuário esteja vivo e presente durante o processo.
Como a Vivacidade Facial funciona
Acesso à câmera: O SDK solicita acesso à câmera do usuário
Captura facial: O SDK captura uma foto do rosto do usuário
Validação de vivacidade: O SDK analisa o rosto capturado para verificar se o usuário está vivo
Resultado: A carga útil do token JWT inclui o
isAlivecampo indicando se o usuário está vivo
Interpretação do resultado da Vivacidade Facial
verdadeiro
✅ O usuário está vivo e a verificação de vivacidade foi aprovada
falso
❌ A detecção de vivacidade falhou
Autenticação facial
O SDK suporta autenticação facial a ser realizada בנוסף à detecção de vivacidade. Quando ativado, após a validação de vivacidade, o SDK comparará o rosto capturado com um rosto cadastrado anteriormente para verificar a identidade do usuário.
Para ativar a autenticação facial, defina o performFaceAuthentication parâmetro como verdadeiro durante a inicialização do SDK:
Como a Autenticação Facial funciona
Cadastro facial: O rosto do usuário deve ter sido previamente cadastrado usando o
personIdVivacidade Facial: O SDK captura o rosto do usuário e realiza a validação de vivacidade
Autenticação facial: O rosto capturado é comparado com o rosto cadastrado para o
personIdResultado: A carga útil do token JWT inclui o
isMatchcampo indicando se há uma correspondência com o rosto cadastrado
Interpretação do resultado da Autenticação Facial
verdadeiro
verdadeiro
✅ O usuário está vivo e o rosto corresponde ao rosto cadastrado
verdadeiro
falso
⚠️ O usuário está vivo, mas o rosto não corresponde
falso
-
❌ A detecção de vivacidade falhou
Configuração de proxy reverso
Se você optar por usar um proxy reverso, você deve configurá-lo para encaminhar corretamente as solicitações para os endpoints apropriados. Abaixo está o mapeamento de redirecionamento:
/v1/→https://web.us.prd.caf.io/bff//std/→https://us.rp.secure.iproov.me//std/ws/→wss://us.rp.secure.iproov.me/ws//assets/→https://cdn.iproov.app/
Exemplo de configuração de proxy reverso
Supondo que seu domínio seja my.proxy.io, a configuração do seu SDK ficaria assim:
Observação: Os caminhos fornecidos neste exemplo são apenas para referência. Você pode configurar seu proxy e seus caminhos de acordo com seus padrões de melhores práticas.
Opções de integração
Para realizar a integração por meio de um iframe, as permissões de câmera e tela cheia devem ser fornecidas.
Requisitos de permissão de sensor do iOS
As versões recentes do iOS 26 introduziram mudanças que quebraram o fluxo de permissão do sensor de movimento para integrações em iframe. A solução alternativa que dependia de um botão de permissão prévia parou de funcionar e foi descontinuada.
A partir da versão 0.14.1, o iProov provedor incluso foi atualizado, o que lida nativamente com os novos requisitos do iOS quando o Web SDK é executado dentro de um iframe. O único caminho suportado é atualizar sua integração para CafFaceLiveness 0.14.1 (ou mais recente). Versões anteriores não funcionarão nos dispositivos mais recentes com iOS 26, mesmo que você mantenha a solução alternativa anterior em vigor.
Após a atualização, você pode incorporar o iframe exatamente como mostrado acima. Não são necessários botões extras nem fluxos de permissão personalizados.
Para usar o SDK por meio de um Webview, a permissão da câmera deve ser concedida no seu aplicativo nativo.
Exemplo de implementação no Android:
AndroidManifest.xml
MainActivity
Exemplo android projeto android para implementação em webview; além disso, é necessário conseguir abrir o aplicativo em tela cheia, o exemplo mostra como configurá-lo corretamente.
Eventos do SDK
O SDK dispara vários eventos durante seu ciclo de vida para poder lidar com diferentes cenários do processo de detecção de vivacidade e proporcionar uma melhor experiência ao usuário.
Ouça os eventos usando o padrão de listener de eventos do DOM:
Atualmente, os eventos estão disponíveis apenas ao usar o iProov provedor. O suporte a eventos para outros provedores está planejado para versões futuras.
Eventos disponíveis
iniciado
O processo de detecção de vivacidade começa
iProov
sdk-button-ready
O botão de início do SDK está pronto para interação
iProov
sdk-button-clicked
O usuário clicou no botão de início do SDK
iProov
streaming
O streaming foi iniciado, permanecendo em tela cheia
iProov
streamed
Fim do streaming e saída da tela cheia
iProov
aprovado
A detecção de vivacidade foi bem-sucedida
iProov
falhou
A detecção de vivacidade falha
iProov
cancelado
O usuário cancela o processo
iProov
erro
Ocorreu um erro durante o processo
iProov
não suportado
O navegador não suporta o SDK
iProov
Detalhes do evento: evento "failed" do iProov
Quando a detecção de vivacidade falha, o falhou evento fornece feedback específico:
A tabela abaixo resume os possíveis falhou detalhes do evento:
eyes_closed
Mantenha os olhos abertos
✅
✅
face_too_far
Aproxime o rosto da tela
❌
✅
face_too_close
Afaste o rosto da tela
❌
✅
misaligned_face
Mantenha o rosto dentro do oval
❌
✅
multiple_faces
Certifique-se de que apenas uma pessoa esteja visível
✅
✅
obscured_face
Remova qualquer cobertura facial
✅
✅
sunglasses
Remova os óculos de sol
✅
✅
too_bright
Luz ambiente muito forte ou brilho da tela muito baixo
✅
✅
too_dark
Seu ambiente parece estar muito escuro
✅
✅
too_much_movement
Por favor, fique parado
❌
✅
desconhecido
Tente novamente
✅
✅
Detalhes do evento: evento "error" do iProov
Quando ocorre um erro durante o processo de detecção de vivacidade, o erro evento fornece detalhes adicionais sobre o erro:
A tabela abaixo resume os possíveis erro detalhes do evento:
desconhecido
Tente novamente
client_camera
Ocorreu um erro ao obter o vídeo da câmera
client_error
Ocorreu um erro desconhecido
error_asset_fetch
Não foi possível buscar os recursos
error_camera
A câmera não pode ser iniciada por motivos desconhecidos
error_camera_in_use
A câmera já está em uso e não pode ser acessada
error_camera_not_supported
A resolução da câmera é muito baixa
error_camera_permission_denied
O usuário negou nossa solicitação de permissão da câmera
error_device_motion_denied
O usuário negou nossa solicitação de permissão de movimento do dispositivo
error_device_motion_unsupported
Seu dispositivo parece não informar totalmente o movimento do dispositivo
error_fullscreen_change
Saiu da tela cheia sem concluir o iProov
error_invalid_token
O token interno do SDK é inválido
error_network
Erro de rede
error_no_face_found
Nenhum rosto pôde ser encontrado
error_not_supported
O dispositivo ou a integração não consegue executar o Web SDK
error_server
Ocorreu um erro ao comunicar-se com os servidores do iProov
error_token_timeout
O token foi solicitado muito tempo depois de ter sido criado
error_too_many_requests
O serviço está sob alta demanda e o usuário deve tentar novamente
error_user_timeout
O usuário iniciou a solicitação, mas não transmitiu a tempo
integration_unloaded
O SDK foi desmontado do DOM antes de concluir
sdk_unsupported
O SDK passou do fim de sua vida útil e não é mais suportado
Notas de lançamento
CafFaceLiveness v0.17.2
Correções
provedor iProov: Corrigido o problema de comportamento de zoom em tablets no modo paisagem, garantindo o dimensionamento adequado da exibição em todos os dispositivos.
provedor Payface: Ampliada a janela de tempo limite de carregamento do SDK e adicionados registros de diagnóstico para melhorar a confiabilidade da inicialização em conexões de rede lentas.
CafFaceLiveness v0.17.1
Melhorias
Dependências atualizadas: Atualizado o provedor Payface com importantes melhorias de segurança e na captura facial.
Correções
provedor iProov: Corrigido um problema em que a tela de captura facial não era exibida corretamente em tela cheia em dispositivos móveis iOS.
CafFaceLiveness v0.17.0
Novos recursos
Tratamento específico para rosto não cadastrado: Adicionado
CafFaceNotFoundError. Quando nenhum rosto está cadastrado para opersonId, o SDK agora gera esse erro específico em vez de um genérico, melhorando significativamente o tratamento de erros no frontend.
Melhorias
Melhor tratamento dos erros de falha do usuário, incluindo rosto não encontrado, permissão da câmera negada e erros de movimento do dispositivo.
Dependências atualizadas: Atualizadas as dependências internas para aumentar a segurança e a estabilidade.
Registro: Aprimorados os registros internos e a análise para melhor depuração e monitoramento.
CafFaceLiveness v0.16.0
Recursos
Evento de clique no botão de início: Adicionado um novo
sdk-button-clickedevento, disparado quando o usuário clica no botão de início do iProov. Use-o junto com osdk-button-readyevento existente para acompanhar o engajamento do usuário durante o fluxo de verificação.
Correções
Corrigido um erro que podia ocorrer ao chamar
dispose()depois que o fluxo de vivacidade já havia sido concluído.
CafFaceLiveness v0.15.1
Melhorias
Dependências atualizadas: Atualizado o provedor iProov e as dependências internas para melhorar o desempenho e a estabilidade.
Tratamento de erros: Melhorado o tratamento de erros para o provedor iProov.
Registro: Aprimorados os registros internos e a análise para melhor depuração e monitoramento.
Recursos
Análise: Adicionados novos eventos ao sistema interno de análise para rastrear melhor a compatibilidade e o suporte do navegador.
CafFaceLiveness v0.14.3
Correções
Adicionados erros para navegadores não suportados e permissões de movimento do dispositivo negadas:
CafUnsupportedErroreCafDeviceMotionPermissionDeniedError.Melhorada a análise adicionando registros mais específicos para erros e falhas usando o provedor iProov.
CafFaceLiveness v0.14.2
Análise aprimorada do SDK
Melhorado o registro adicionando informações sobre tentativas de captura e métricas específicas de qualidade.
Adicionado rastreamento de abandono: quando um usuário abandona abruptamente a jornada antes da conclusão, como ao fechar a janela do navegador, minimizar a aba ou navegar para uma página diferente, o SDK rastreará esse evento para fornecer melhores insights sobre a jornada do usuário e os possíveis motivos do abandono.
CafFaceLiveness v0.14.1
Importante para o provedor iProov: Atualizar para a versão 0.14.1 ou mais recente é necessário para integrações em iframe nas versões mais recentes do iOS.
Correções
Atualizado o iProov mecanismo do provedor, corrigindo a inicialização de iframes em dispositivos com iOS 26.x e eliminando a solução alternativa anterior de permissão do sensor de movimento.
CafFaceLiveness v0.14.0
Melhorias
Esta versão inclui uma atualização do nosso provedor Payface que melhora a experiência do usuário, resultando em taxas de sucesso mais altas. As principais melhorias incluem:
Orientação aprimorada ao usuário: Novos alertas de iluminação ajudam os usuários a encontrar as condições ideais para uma captura bem-sucedida.
Acessibilidade aprimorada: Instruções mais claras criam uma jornada do usuário mais fluida e inclusiva.
Experiência mais responsiva: Cancelar a captura agora é mais rápido, melhorando a usabilidade.
Recursos
Fingerprinting do dispositivo: Coleta a impressão digital do dispositivo durante a verificação para fortalecer a prevenção a fraudes e a análise de risco. Desativado por padrão; entre em contato com nossa equipe para ativar.
CafFaceLiveness v0.13.0
Mudança incompatível: Os nomes dos erros foram alterados na v0.13.0. Recomendamos fortemente revisar a Referência do SDK seção antes de atualizar para esta versão para manter a compatibilidade.
Tratamento de erros simplificado com base em nomes: Consolidamos os tipos de erro em nomes claros e descritivos para melhorar a consistência.
Dependências atualizadas: Melhorada a estabilidade, a segurança e a compatibilidade do SDK.
CafFaceLiveness v0.12.1
Sistema de captura de imagem mais robusto: O SDK agora conta com um mecanismo inteligente de fallback, garantindo que a captura de imagem funcione de forma mais confiável em diferentes dispositivos e navegadores, mesmo em cenários com limitações técnicas.
Validação aprimorada da qualidade da imagem: Novas validações foram implementadas para evitar imagens de baixa qualidade, aumentando a confiabilidade do processo de captura.
Otimização de desempenho na inicialização: O processo de inicialização do SDK agora é mais rápido e leve, reduzindo o tempo de espera do usuário.
Feedback visual aprimorado: Novos eventos e mensagens de status permitem que a interface do usuário informe com mais precisão o usuário sobre o momento da captura.
CafFaceLiveness v0.12.0
Recursos
Seleção de câmera aprimorada: Detecção inteligente de rótulo/modo de frente com seleção heurística da melhor câmera (Caf e FaceTec).
Descoberta unificada e reutilização de stream: Descoberta única de mídia do usuário com reutilização de stream e fallback automático de câmera, reduzindo solicitações de permissão e acelerando a inicialização (Caf e FaceTec).
Troca de câmera mais rápida: Troca de câmera quase instantânea com seleções em cache (Caf e FaceTec).
CafFaceLiveness v0.11.2
Melhorias
Experiência do usuário aprimorada durante interrupções: Comportamento aprimorado de Face Liveness quando os usuários passam por mudanças de foco ou interrupções durante sessões de captura facial usando o provedor Payface.
Adicionada funcionalidade de pausar/retomar quando o foco do navegador é perdido (troca de aba, minimização etc.)
Agora os usuários podem se recuperar de interrupções em vez de reiniciar todo o processo de captura
Redução nas taxas de abandono de sessão devido a interrupções acidentais
CafFaceLiveness v0.11.1
Correções
Compatibilidade aprimorada com dispositivos: Estabilidade e compatibilidade aprimoradas do Face Liveness em vários dispositivos e navegadores, reduzindo significativamente as falhas de sessão e melhorando a experiência do usuário durante o processo de verificação facial usando o provedor Payface.
Corrigidos problemas de compatibilidade que estavam causando erros de "não suportado" em determinados dispositivos
Confiabilidade aprimorada da inicialização da câmera em diferentes dispositivos móveis e navegadores
Redução nas taxas de abandono durante sessões de Face Liveness
CafFaceLiveness v0.11.0
Recursos
Inicialização da câmera aprimorada: Refatorada a inicialização da câmera ao usar os provedores Caf ou FaceTec, movendo a configuração da câmera da inicialização do SDK para a fase de execução, resultando em inicialização mais rápida e melhor gerenciamento de recursos.
Correções
Corrigido um problema em que o stream da câmera não era reproduzido automaticamente ao inicializar o SDK dentro de um WebView móvel.
CafFaceLiveness v0.10.1
Correções
Garante que o SDK seja fechado corretamente após erros de captura ao usar os provedores Caf ou FaceTec, evitando estados inconsistentes e permitindo que o usuário tente o processo novamente.
CafFaceLiveness v0.10.0
Recursos
Rastreamento de analytics aprimorado: Rastreamento de eventos de analytics aprimorado, fornecendo melhor monitoramento de erros e recursos de depuração do SDK.
Correções
Corrigidas falhas de inicialização da câmera e problemas de sobreposição em tela cheia ao usar os provedores Caf ou FaceTec.
Corrigida a configuração de proxy reverso para encaminhar corretamente as solicitações para os endpoints desejados.
CafFaceLiveness v0.9.0
Recursos
Modo de tela cheia: Habilite o modo de tela cheia ao usar os provedores Caf ou FaceTec para melhorar a experiência do usuário.
Melhorias no Payface: Provedor Payface atualizado para melhorar a observabilidade e a compatibilidade com Webview.
CafFaceLiveness v0.7.3
Correções
Corrigido um problema em que o SDK não estava habilitando a autenticação facial ao usar o provedor Payface. Agora o SDK realiza corretamente a autenticação facial quando a performFaceAuthentication opção é definida como verdadeiro durante a inicialização.
CafFaceLiveness v0.7.2
Apresentando CafFaceLiveness, um Web SDK para detecção de vitalidade facial e autenticação em aplicações web.
Recursos
Detecção de Vitalidade Facial: Validação em tempo real para garantir a presença do usuário
Autenticação facial: Verificação de identidade opcional contra faces registradas
Suporte a Múltiplos Provedores: Roteamento automático entre os provedores Caf, FaceTec, iProov e Payface
Configuração Flexível: Opções de personalização para a interface e o comportamento
Vários Idiomas: Suporte nativo para inglês, espanhol e português
Proxy Reverso: Tráfego seguro da API por meio da configuração de proxy reverso
Observação: Esta é a versão inicial do CafFaceLiveness Web SDK. Versões futuras incluirão recursos adicionais, melhorias e suporte ampliado a provedores.
Atualizado

