Recursos
- API simples - Padrão singleton com métodos fáceis de usar
- Integração flexível - Use a URL do UniLink diretamente ou crie sessões pelo backend
- Responsivo - Funciona em navegadores de desktop e de dispositivos móveis
- Personalizável - Opções de configuração para estilo e comportamento
- Vários formatos - Builds ESM, CommonJS e UMD
- Suporte a TypeScript - Definições de tipos completas incluídas
- Modos modal e inline - Escolha entre uma sobreposição modal ou a incorporação inline
- Callbacks de eventos - Eventos em tempo real sobre o progresso da verificação (iniciada, etapa concluída, finalizada)
- Gerenciamento de estado - Observe o estado do SDK para criar uma UI personalizada
Instalação
NPM/Yarn
CDN (UMD)
A versão mais recente publicada no npm é a
0.5.1.
A 0.5.0 adicionou DiditSdk.shared.submitEvent() (veja Enviar eventos), e a 0.5.1 permite que o fluxo hospedado solicite o documento de identidade do usuário a uma carteira de identidade digital dentro do SDK, além de manter uma inicialização com falha no estado error, com sua errorMessage.
A 0.4.0 adicionou as opções de câmera que os SDKs nativos já oferecem, incluindo defaultLivenessCamera, que abre a captura facial na câmera traseira (veja Opções de câmera).Verificar a versão instalada
Seu gerenciador de pacotes continua sendo a fonte definitiva para a versão instalada:0.3.1, essa exportação é gerada a partir da versão do pacote em todos os formatos JavaScript (ESM, CommonJS, UMD, UMD minificado) e na declaração TypeScript, portanto sempre corresponde à versão instalada.
A 0.3.0 e versões anteriores informam 0.2.1 nessa exportação, independentemente da versão instalada. Nessas versões, use npm list ou o seu lockfile.
JavaScript puro
ES Modules / TypeScript
Tag de script (UMD)
Exemplos com frameworks
Exemplos do SDK Web
React, Angular, Svelte, Next.js, Nuxt, Vue e outros, com exemplos e documentação para cada framework.
Métodos de integração
Há duas formas de integrar o SDK:Método 1: URL do UniLink (mais simples)
Use a URL do UniLink do seu fluxo de verificação (workflow) diretamente do Didit Console. Nenhum backend é necessário.Método 2: Sessão pelo backend (recomendado para produção)
Seu backend cria uma sessão pela API da Didit e retorna a URL de verificação hospedada. Isso dá a você controle sobrevendor_data, o callback por sessão e metadata, além de permitir criar sessões antes que o usuário chegue ao frontend.
Saiba mais na referência da API Create Session.
Backend (Node.js / Express)
O campo da resposta de criação de sessão se chama
url (veja o esquema OpenAPI de Create Session). Passe-o diretamente para startVerification({ url }).Configuração
Opções de câmera
As opções de câmera exigem
@didit-protocol/sdk-web 0.4.0 ou posterior.defaultLivenessCamera: 'back' para abrir a captura do rosto na câmera traseira, por exemplo em um quiosque ou quando um operador segura o dispositivo e o aponta para a pessoa que está sendo verificada.
- Os valores de lente aceitos são
'front'e'back'. Qualquer outro valor é ignorado, assim como uma flag do seletor que não seja booleana. - Um dispositivo sem a câmera solicitada usa a câmera disponível: um notebook configurado com
'back'continua usando a webcam. O seletor fica oculto em dispositivos com uma única câmera, independentemente das flags. - As opções de prova de vida se aplicam à verificação de prova de vida passiva. A prova de vida ativa não é afetada.
- O SDK repassa as opções à página de verificação como parâmetros de consulta da URL de verificação:
document_camera,liveness_camera,document_camera_switcheliveness_camera_switch. Se você abrir a URL de verificação diretamente, sem passar pelo SDK, defina-os você mesmo: acrescente?liveness_camera=backa uma URL sem query string,&liveness_camera=backa uma que já tenha parâmetros, ou defina-os com a APIURLpara tratar os dois casos:
Envio de eventos
DiditSdk.shared.submitEvent() coloca em fila eventos do usuário final (cadastro, login, falha de login, logout, redefinição de senha, MFA, troca de dispositivo) para o monitoramento de eventos da Didit.
Seu backend gera um token de monitoramento para a pessoa, e o SDK envia os eventos em lotes junto com a impressão digital do dispositivo.
Nunca envie uma chave de API ao navegador.
Dimensionamento e rolagem do modal
O comportamento de dimensionamento abaixo exige 0.3.1 ou posterior. As versões 0.3.0 e anteriores podem cortar o fluxo de verificação em viewports de desktop com pouca altura e em modo paisagem.
dvh em navegadores compatíveis com unidades de viewport dinâmicas e recorre a vh nos navegadores suportados mais antigos. Em larguras de 540px ou menos, o modal ocupa toda a viewport visível. O botão de fechar e a confirmação de saída ficam dentro do modal.
Fluxo de verificação redesenhado
Tudo nesta seção se aplica a partir da versão 0.5.0, que ainda não foi publicada. Até você atualizar, o modal mantém o tamanho descrito acima.
didit:layout:
- Tamanho inicial, a partir da versão 0.5.0: até a página informar seu layout, e para páginas que nunca o fazem, o modal mantém o tamanho máximo atual de 500px por 700px. Ele continua se ajustando a janelas de pouca altura e permanece em tela cheia em 540px ou menos.
- Botão de fechar, a partir da versão 0.5.0: um círculo de 44px sobre a barra superior da página. Ele segue o tema claro ou escuro da página e passa para a esquerda em idiomas escritos da direita para a esquerda.
- Modo incorporado, a partir da versão 0.5.0: continua ocupando todo o seu elemento hospedeiro, como antes (consulte Modo incorporado).
- URL de verificação, a partir da versão 0.5.0: o SDK adiciona
sdk_presentation(modalouembedded) e, em um modal,sdk_close_button(trueoufalse, conformeshowCloseButton), para que a página saiba como está sendo exibida. - Eventos, a partir da versão 0.5.0: o SDK trata
didit:layoutinternamente e não o repassa paraonEvent.
Modo incorporado
O modo incorporado não usa o limite de 500px por 700px do modal. O SDK ocupa a caixa de conteúdo do elemento hospedeiro, então dê a esse elemento uma altura explícita ou definida de outra forma:Resultados da verificação
O SDK retorna três tipos de resultados:Concluído
O fluxo de verificação terminou (aprovado, pendente ou recusado).O tipo TypeScript declara
'Approved' | 'Pending' | 'Declined', mas o valor é repassado do status da sessão do fluxo hospedado, então você também pode receber outros status, como In Review. Pending é o valor padrão do SDK quando o fluxo não informa nenhum status. Trate status como uma indicação e use o webhook como fonte da decisão definitiva.Cancelado
O usuário fechou o modal de verificação.session é incluído quando um sessionId já era conhecido (pode ser undefined se o usuário cancelou antes de o iframe informar um).
Falhou
Ocorreu um erro durante a verificação.Gerenciamento de estado
Você pode observar o estado do SDK para criar uma interface personalizada:Referência da API
DiditSdk.shared
A instância singleton do SDK.Métodos
Propriedades
Callbacks
Eventos granulares
Acompanhe o progresso da verificação com o callbackonEvent:
Referência de eventos
Perda de conexão
Se a conexão do usuário cair, a página de verificação exibe uma tela de “Sem conexão com a internet” sobre o fluxo em vez de deixar uma etapa em carregamento. Ela continua verificando em segundo plano e fecha a tela sozinha assim que a Didit volta a ficar acessível, e o usuário continua a partir da etapa em que estava. Dentro do modal do SDK ou de um iframe, a tela também oferece Exit Verification: a página então enviadidit:error com error: "network_error", seguido de didit:cancelled, e o SDK fecha o modal e chama onComplete com type: "cancelled".
A partir da versão 0.5.0, a mensagem didit:layout da página dimensiona o modal e não chega ao onEvent. Se, em vez disso, você incorporar a página com seu próprio iframe, consulte Dimensionar o iframe a partir de didit:layout.
Valores de etapa
O campostep pode ser um dos seguintes:
document_selection- Seleção do tipo de documentodocument_front- Frente do documentodocument_back- Verso do documentoface- Verificação facial/prova de vidaemail- Verificação de e-mailphone- Verificação de telefonepoa- Comprovante de endereçoquestionnaire- Etapa de questionário
Valores de canal
O campochannel em code_sent pode ser:
email- Código enviado por e-mailsms- Código enviado por SMSwhatsapp- Código enviado por WhatsApp
Tamanho do código
O campocodeSize em code_sent indica o comprimento do código OTP (por exemplo, 4 ou 6 dígitos).