Saltar para o conteúdo principal
Incorpore o fluxo de verificação da Didit diretamente na sua aplicação através de um iframe. Assim, obtém uma experiência contínua, sem redirecionar os utilizadores para fora do seu site.

Visão geral


A forma mais rápida de começar: basta copiar e colar o seu URL do UniLink.

O que precisa

  1. Um fluxo de verificação da Didit (criado na Didit Console)
  2. O seu URL do UniLink (clique em Copy Link no seu fluxo)

Implementação

⚠️ Obrigatório: o atributo allow é obrigatório para o acesso à câmara durante a prova de vida.

Principais vantagens

  • Configuração em menos de 1 minuto: sem backend, sem chaves de API
  • Sem configuração: URL de retorno definido nas definições do fluxo
  • Ideal para MVPs: comece de imediato

Iframe da sessão de API (com backend)

Para integrações avançadas que precisam de personalização por sessão.

Quando usar

  • Transmitir vendor_data ou metadata personalizados por sessão
  • Definir URLs de retorno diferentes por sessão
  • Acompanhar sessões no servidor antes de a verificação começar
  • Associar sessões aos seus IDs de utilizador

Implementação

Passo 1: criar uma sessão (backend) A resposta de criação de sessão usa um campo chamado url. Use-o como src do iframe.
Passo 2: incorporar no iframe (frontend)

Escutar eventos (postMessage)

A página de verificação envia eventos para a janela principal. Cada mensagem tem este envelope:
O payload está aninhado. Leia event.data.data.sessionId, e não event.data.sessionId:
Eventos principais: didit:ready ({ sessionId }), didit:started, didit:step_started / didit:step_completed / didit:step_changed ({ step, ... }), didit:status_updated ({ status }), didit:completed ({ sessionId, status }), didit:cancelled, didit:error ({ error, step? }), didit:close_request e didit:layout ({ contentHeight, colorScheme, dir }, ver abaixo). A referência de eventos do SDK JavaScript lista os eventos de verificação disponíveis como callbacks tipados. A partir da versão 0.5.0, o SDK trata das mensagens de layout internamente, em vez de as reencaminhar para onEvent.

Dimensionar o iframe a partir de didit:layout

A página de verificação indica quanto espaço precisa através de uma mensagem didit:layout. Envia uma ao carregar e outra sempre que a altura do conteúdo, o tema ou a direção do texto mudam:
Para receber didit:layout no seu próprio iframe, adicione sdk_presentation=embedded ao URL de verificação. A partir da versão 0.5.0, o SDK JavaScript define a apresentação por si. Sem um parâmetro de apresentação, a página usa o layout autónomo e não envia mensagens de layout.
Esta aplicação anfitriã segue os tamanhos recomendados: um cartão fixo a partir de 1024px de largura, ecrã inteiro até 540px e, entre estes valores, um iframe com 500px de largura que assume a altura comunicada pela página:
Entre 541px e 1023px, este exemplo usa uma altura inicial de 700px até que chegue uma mensagem de layout, limitada a 90% da altura da janela visível. Os tamanhos de computador e de telemóvel aplicam-se de imediato. Nos telemóveis, o iframe cobre a janela, por isso disponibilize uma forma de sair da verificação na sua aplicação. Use colorScheme e dir para alinhar quaisquer controlos que desenhe em torno do iframe com o tema e a direção do texto da página. Se a ligação do utilizador cair, a página mostra um ecrã «Sem ligação à Internet» que se fecha sozinho assim que a ligação for restabelecida. Se o utilizador escolher Sair da verificação nesse ecrã, a página envia didit:error com error: "network_error" e, em seguida, didit:cancelled. Feche o iframe ao receber didit:cancelled.

Implementação do modal

Para uma experiência de modal elegante que se sobrepõe à sua página:

HTML/CSS/JS


Componente React

Um componente React reutilizável para verificação em modal:

Utilização


Componente Vue


Configuração

Permissões necessárias

Use esta lista completa de permissões para a captura, a localização, a cópia e a compatibilidade de conteúdo multimédia:
O atributo allow delega permissões; não se sobrepõe à escolha do utilizador nem a um cabeçalho Permissions-Policy mais restritivo na sua página de acolhimento.

Tamanho do iframe

O fluxo de verificação adapta a disposição dos seus elementos ao tamanho do respetivo iframe. Dimensione o iframe para a janela em que é apresentado: Para o intervalo intermédio, comece com 500px por 700px até chegar à primeira mensagem didit:layout, com o mesmo limite de altura. O exemplo de didit:layout aplica os três tamanhos, incluindo os tamanhos de computador e de telemóvel antes de chegar qualquer mensagem.

Política de segurança de conteúdo (CSP)

Se utilizar CSP, adicione a Didit à diretiva frame-src:

Verificação entre dispositivos

O iframe InContext suporta automaticamente a verificação entre dispositivos:
  1. O utilizador inicia a verificação no computador
  2. Se a câmara não estiver disponível, é apresentado um código QR
  3. O utilizador lê o código QR com o telemóvel
  4. O utilizador conclui a verificação no telemóvel
  5. O iframe do computador é atualizado automaticamente com o resultado
Isto acontece automaticamente, sem necessidade de configuração adicional.

Resolução de problemas

A câmara não funciona

  1. Certifique-se de que o iframe inclui a lista completa de permissões
  2. Verifique se o seu site é servido através de HTTPS
  3. Confirme se o utilizador concedeu as permissões de câmara ao seu domínio
  4. Experimente o método Redirect se o acesso à câmara no iframe falhar

O iframe não carrega

  1. Verifique se existem problemas de Política de segurança de conteúdo (CSP)
  2. Adicione https://verify.didit.me à diretiva frame-src
  3. Verifique a consola do navegador para detetar erros

Mensagem postMessage não recebida

  1. Confirme que está a escutar a origem correta (https://verify.didit.me, ou o seu domínio de marca branca)
  2. Verifique se o ouvinte de eventos é adicionado antes de abrir o iframe
  3. Verifique o nome e a estrutura do evento: os tipos têm prefixo (didit:completed, e não verification_complete) e o payload está aninhado em event.data.data

Repositório de exemplos

Repositório no GitHub

Consulte o código-fonte e os exemplos no GitHub

Última modificação em 7 de novembro de 2026