Funcionalidades
- API simples - Padrão singleton com métodos fáceis de usar
- Integração flexível - Use o URL UniLink diretamente ou crie sessões através do backend
- Responsivo - Funciona em navegadores de computador e de dispositivos móveis
- Personalizável - Opções de configuração para estilo e comportamento
- Vários formatos - Compilações ESM, CommonJS e UMD
- Suporte TypeScript - Definições de tipos completas incluídas
- Modo modal e em linha - Escolha entre sobreposição modal ou integração em linha
- Callbacks de eventos - Eventos em tempo real sobre o progresso da verificação (iniciada, passo concluído, terminada)
- Gestão de estado - Observe o estado do SDK para criar uma interface personalizada
Instalação
NPM/Yarn
CDN (UMD)
A versão mais recente publicada no npm é a
0.5.1.
A 0.5.0 acrescentou DiditSdk.shared.submitEvent() (ver Enviar eventos), e a 0.5.1 permite que o fluxo alojado peça à carteira de identidade digital o ID do utilizador dentro do SDK, e mantém uma inicialização falhada no estado error com o respetivo errorMessage.
A 0.4.0 acrescentou as opções de câmara que os SDK nativos já oferecem, incluindo defaultLivenessCamera, que abre a captura facial na câmara traseira (ver Opções de câmara).Verificar a versão instalada
O seu gestor de pacotes continua a ser a referência para a versão instalada:0.3.1, esta 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, por isso corresponde sempre à versão instalada.
As versões 0.3.0 e anteriores devolvem 0.2.1 nesta exportação, independentemente da versão instalada. Nessas versões, use npm list ou o seu ficheiro de lock.
JavaScript puro
Módulos ES / TypeScript
Tag de script (UMD)
Exemplos de frameworks
Exemplos Web do SDK
React, Angular, Svelte, Next.js, Nuxt, Vue e mais, com exemplos e documentação para cada framework.
Métodos de integração
Existem duas formas de integrar o SDK:Método 1: URL UniLink (o mais simples)
Use o URL UniLink do seu fluxo diretamente a partir da Consola Didit. Não é necessário backend.Método 2: sessão no backend (recomendado para produção)
O seu backend cria uma sessão através da API da Didit e devolve o URL de verificação alojado. Isto dá-lhe controlo sobrevendor_data, callback por sessão e metadata, e permite criar sessões antes de o utilizador chegar 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 chama-se
url (ver o schema OpenAPI de Create Session). Passe-o diretamente a startVerification({ url }).Configuração
Opções de câmara
As opções de câmara requerem
@didit-protocol/sdk-web 0.4.0 ou posterior.defaultLivenessCamera: 'back' para abrir a captura facial na câmara traseira, por exemplo num quiosque ou quando um operador segura no dispositivo e o aponta para a pessoa a verificar.
- Os valores aceites para a objetiva são
'front'e'back'. Qualquer outro valor é ignorado, o mesmo acontecendo com um sinalizador do seletor que não seja booleano. - Um dispositivo sem a câmara pedida mantém a que tem: um portátil que peça
'back'continua a usar a webcam. O seletor fica oculto em dispositivos com uma única câmara, independentemente das opções. - As opções de prova de vida aplicam-se à verificação de prova de vida passiva. A prova de vida ativa não é afetada.
- O SDK transmite as opções à página de verificação como parâmetros de consulta do URL de verificação:
document_camera,liveness_camera,document_camera_switcheliveness_camera_switch. Se abrir o URL de verificação diretamente, em vez de através do SDK, defina-os você mesmo: acrescente?liveness_camera=backa um URL sem cadeia de consulta,&liveness_camera=backa um URL que já tenha parâmetros, ou defina-os com a APIURL, que trata os dois casos:
Enviar eventos
DiditSdk.shared.submitEvent() coloca em fila os eventos do utilizador final (registo, início de sessão, falha no início de sessão, terminar sessão, redefinição de palavra-passe, MFA, alteração de dispositivo) para a monitorização de eventos da Didit.
O seu back-end cria um token de monitorização para a pessoa, e o SDK envia os eventos em lotes juntamente com a impressão digital do dispositivo.
Nunca envie uma chave de API para o navegador.
Dimensionamento e deslocamento do modal
O comportamento de dimensionamento descrito abaixo requer a versão 0.3.1 ou posterior. As versões 0.3.0 e anteriores podem cortar o fluxo de verificação em áreas de visualização de computadores com pouca altura e em orientação paisagem.
dvh nos navegadores que suportam unidades de área de visualização dinâmicas e recorre a vh nos navegadores antigos suportados. Com larguras de 540px ou menos, o modal ocupa toda a área de visualização visível. O botão de fecho e a confirmação de saída mantêm-se dentro do modal.
Fluxo de verificação redesenhado
Tudo o que está nesta secção se aplica a partir da versão 0.5.0, que ainda não está publicada. Até 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 comunicar o respetivo layout, e para as páginas que nunca o fazem, o modal mantém o tamanho máximo existente de 500px por 700px. Continua a caber em janelas curtas e ocupa o ecrã inteiro com 540px ou menos.
- Botão de fecho, a partir da versão 0.5.0: um círculo de 44px sobre a barra superior da página. Segue o tema claro ou escuro da página e passa para a esquerda em idiomas da direita para a esquerda.
- Modo incorporado, a partir da versão 0.5.0: continua a preencher o respetivo elemento anfitrião, como antes (ver Modo incorporado).
- URL de verificação, a partir da versão 0.5.0: o SDK acrescenta
sdk_presentation(modalouembedded) e, num modal,sdk_close_button(trueoufalse, conformeshowCloseButton), para que a página saiba como é apresentada. - Eventos, a partir da versão 0.5.0: o SDK trata de
didit:layoutpor si próprio e não o transmite aonEvent.
Modo incorporado
O modo incorporado não usa o limite de 500px por 700px do modal. O SDK preenche a área de conteúdo do elemento anfitrião, pelo que deve dar a esse elemento uma altura explícita ou resolvida de outra forma:Resultados da verificação
O SDK devolve 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 é transmitido a partir do estado da sessão do fluxo alojado. Também pode receber outros estados, como In Review. Pending é o valor de reserva do SDK quando o fluxo não indicou nenhum estado. Trate status apenas como uma indicação e baseie-se no webhook para a decisão canónica.Cancelado
O utilizador fechou o modal de verificação.session é incluído quando um sessionId já era conhecido (pode ser undefined se o utilizador cancelou antes de o iframe o ter indicado).
Falhado
Ocorreu um erro durante a verificação.Gestão do estado
Pode observar o estado do SDK para criar uma interface personalizada:Referência da API
DiditSdk.shared
A instância única do SDK.Métodos
Propriedades
Callbacks
Eventos granulares
Acompanhe o progresso da verificação com o callbackonEvent:
Referência de eventos
Ligação perdida
Se a ligação do utilizador for interrompida, a página de verificação sobrepõe um ecrã “Sem ligação à Internet” ao fluxo, em vez de deixar um passo a carregar. A página continua a verificar em segundo plano e fecha o ecrã automaticamente assim que a Didit voltar a ser contactável, e o utilizador prossegue a partir do passo em que estava. Dentro do modal do SDK ou de um iframe, o ecrã oferece também Exit Verification: a página envia entãodidit: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 a onEvent. Se, em vez disso, incorporar a página com o seu próprio iframe, consulte Dimensionar o iframe a partir de didit:layout.
Valores de passo
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 e prova de vidaemail- Verificação de e-mailphone- Verificação de telefonepoa- Comprovativo de moradaquestionnaire- Passo 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).