Visión general
Iframe con UniLink (sin backend)
La forma más rápida de empezar: solo copia y pega tu URL de UniLink.Qué necesitas
- Un flujo de verificación (workflow) de Didit (creado en la Didit Console)
- Tu URL de UniLink (haz clic en Copy Link en tu flujo)
Implementación
⚠️ Obligatorio: el atributo allow es imprescindible para acceder a la cámara durante la detección de vida.
Ventajas principales
- Configuración en menos de 1 minuto: sin backend y sin claves de API
- Cero configuración: la URL de callback se define en la configuración del flujo
- Ideal para MVP: empieza de inmediato
Iframe con sesión por API (con backend)
Para integraciones avanzadas que necesitan personalización por sesión.Cuándo usarlo
- Enviar
vendor_dataometadatapersonalizados por sesión - Definir URL de callback distintas por sesión
- Hacer seguimiento de las sesiones desde el servidor antes de que empiece la verificación
- Asociar las sesiones con los ID de tus usuarios
Implementación
Paso 1: Crear una sesión (backend) La respuesta de creación de sesión incluye un campo llamadourl: úsalo como src del iframe.
Escuchar eventos (postMessage)
La página de verificación envía eventos a la ventana que la contiene. Todos los mensajes tienen esta estructura:event.data.data.sessionId, no event.data.sessionId:
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 y didit:layout ({ contentHeight, colorScheme, dir }, consulta más abajo). La referencia de eventos del SDK de JavaScript enumera los eventos de verificación disponibles como callbacks tipados. A partir de la versión 0.5.0, el SDK gestiona los mensajes de layout internamente en lugar de reenviarlos a onEvent.
Dimensionar el iframe con didit:layout
La página de verificación te indica cuánto espacio necesita mediante un mensaje didit:layout. Envía uno al cargarse y otro cada vez que cambian la altura de su contenido, el tema o la dirección del texto:
Para recibir
didit:layout en tu propio iframe, añade sdk_presentation=embedded a su URL de verificación. A partir de la versión 0.5.0, el SDK de JavaScript configura la presentación por ti. Sin un parámetro de presentación, la página usa su layout independiente y no envía mensajes de layout.colorScheme y dir para que los controles que dibujes alrededor del iframe coincidan con el tema y la dirección del texto de la página.
Si la conexión del usuario se cae, la página muestra una pantalla “No internet connection” que se cierra sola cuando se recupera la conexión. Si el usuario elige Exit Verification en ella, la página envía didit:error con error: "network_error" y después didit:cancelled: cierra el iframe al recibir didit:cancelled.
Implementación en modal
Para una experiencia pulida con el modal que se superpone a tu página:HTML/CSS/JS
Componente de React
Un componente de React reutilizable para la verificación en un modal:Uso
Componente de Vue
Configuración
Permisos necesarios
Usa esta lista completa de permisos para la captura, la ubicación, la copia y la compatibilidad multimedia:
El atributo
allow delega permisos; no anula la elección del usuario ni un encabezado Permissions-Policy más restrictivo en tu página anfitriona.
Tamaño del iframe
El flujo de verificación adapta su diseño al tamaño de su iframe. Dimensiona el iframe según la ventana en la que se muestra:
Para el rango intermedio, empieza con 500px por 700px hasta que llegue el primer mensaje
didit:layout, con el mismo límite de altura. El ejemplo de didit:layout aplica los tres tamaños, incluidos los de escritorio y teléfono antes de que llegue cualquier mensaje.
Content Security Policy (CSP)
Si usas CSP, añade Didit a tu directivaframe-src:
Verificación entre dispositivos
El iframe InContext admite automáticamente la verificación entre dispositivos:- El usuario inicia la verificación en un equipo de escritorio
- Si la cámara no está disponible, se muestra un código QR
- El usuario escanea el código QR con un dispositivo móvil
- El usuario completa la verificación en un dispositivo móvil
- El iframe en el equipo de escritorio se actualiza automáticamente con el resultado
Solución de problemas
La cámara no funciona
- Asegúrate de que el iframe incluya la lista de permisos completa
- Comprueba que tu sitio se sirva por HTTPS
- Verifica que el usuario haya concedido permisos de cámara a tu dominio
- Prueba el método de redirección si falla el acceso a la cámara desde el iframe
El iframe no carga
- Revisa si hay problemas con la Content Security Policy (CSP)
- Añade
https://verify.didit.mea tu directivaframe-src - Revisa la consola del navegador en busca de errores
No se recibe el postMessage
- Verifica que estés escuchando el origen correcto (
https://verify.didit.meo tu dominio de marca blanca) - Comprueba que el listener de eventos se añada antes de abrir el iframe
- Comprueba el nombre y la estructura del evento: los tipos llevan prefijo (
didit:completed, noverification_complete) y el payload está anidado enevent.data.data
Repositorio de ejemplo
Repositorio de GitHub
Consulta el código fuente y los ejemplos en GitHub