Vai al contenuto principale
Integra il flusso di verifica Didit direttamente nella tua applicazione tramite un iframe. Così offri un’esperienza fluida, senza reindirizzare gli utenti fuori dal tuo sito.

Panoramica


Il modo più rapido per iniziare: copia e incolla il tuo URL UniLink.

Cosa ti serve

  1. Un workflow Didit (creato nella Didit Console)
  2. Il tuo URL UniLink (clicca su Copy Link nel tuo workflow)

Implementazione

⚠️ Obbligatorio: l’attributo allow è obbligatorio per l’accesso alla fotocamera durante il rilevamento della vitalità.

Vantaggi principali

  • Configurazione in meno di 1 minuto: nessun backend, nessuna chiave API
  • Nessuna configurazione: l’URL di callback si imposta nelle impostazioni del workflow
  • Ideale per gli MVP: inizi subito

Iframe con sessione API (con backend)

Per integrazioni avanzate che richiedono una personalizzazione per sessione.

Quando usarlo

  • Passa vendor_data o metadata personalizzati per sessione
  • Imposta URL di callback diversi per sessione
  • Traccia le sessioni lato server prima dell’avvio della verifica
  • Associa le sessioni agli ID utente

Implementazione

Passaggio 1: crea una sessione (backend) La risposta della creazione della sessione usa un campo chiamato url: usalo come src dell’iframe.
Passaggio 2: inserisci nell’iframe (frontend)

Ascoltare gli eventi (postMessage)

La pagina di verifica invia eventi alla finestra padre. Ogni messaggio ha questa struttura:
Il payload è annidato: leggi event.data.data.sessionId, non event.data.sessionId:
Eventi principali: 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 }, vedi sotto). Il riferimento degli eventi dell’SDK JavaScript elenca gli eventi di verifica disponibili come callback tipizzati. A partire dalla versione 0.5.0, l’SDK gestisce internamente i messaggi di layout invece di inoltrarli a onEvent.

Dimensiona l’iframe da didit:layout

La pagina di verifica indica lo spazio di cui ha bisogno con un messaggio didit:layout. Ne invia uno al caricamento e un altro ogni volta che cambiano l’altezza del contenuto, il tema o la direzione del testo:
Per ricevere didit:layout nel tuo iframe, aggiungi sdk_presentation=embedded all’URL di verifica. A partire dalla versione 0.5.0, l’SDK JavaScript imposta la presentazione per te. Senza un parametro di presentazione, la pagina usa il layout autonomo e non invia messaggi di layout.
Questo host segue le dimensioni consigliate: una card fissa a partire da una larghezza di 1024px, a schermo intero fino a 540px e sotto, e, nel mezzo, un iframe largo 500px che assume l’altezza comunicata dalla pagina:
Tra 541px e 1023px, questo esempio usa un’altezza iniziale di 700px finché non arriva un messaggio di layout, con un massimo del 90% dell’altezza visibile della finestra. Le dimensioni per computer e telefono si applicano subito. Sui telefoni l’iframe copre la finestra, quindi prevedi nel tuo host un modo per uscire dalla verifica. Usa colorScheme e dir per adattare i controlli che disegni attorno all’iframe al tema e alla direzione del testo della pagina. Se la connessione dell’utente cade, la pagina mostra una schermata “Nessuna connessione a internet” che si chiude da sola quando la connessione torna disponibile. Se l’utente sceglie Exit Verification in quella schermata, la pagina invia didit:error con error: "network_error", poi didit:cancelled: chiudi l’iframe alla ricezione di didit:cancelled.

Implementazione modale

Per un’esperienza modale curata che si sovrappone alla tua pagina:

HTML/CSS/JS


Componente React

Un componente React riutilizzabile per la verifica in modale:

Utilizzo


Componente Vue


Configurazione

Autorizzazioni richieste

Usa questo elenco completo di autorizzazioni per l’acquisizione, la posizione, la copia e la compatibilità dei contenuti multimediali:
L’attributo allow delega le autorizzazioni; non sostituisce la scelta dell’utente né un’intestazione Permissions-Policy più restrittiva sulla tua pagina host.

Dimensioni dell’iframe

Il flusso di verifica si adatta automaticamente alle dimensioni del proprio iframe. Dimensiona l’iframe in base alla finestra in cui viene mostrato: Per l’intervallo intermedio, parti da 500px per 700px finché non arriva il primo messaggio didit:layout, con lo stesso limite di altezza. L’esempio di didit:layout applica tutte e tre le dimensioni, comprese quelle per computer e telefono, prima che arrivi qualsiasi messaggio.

Content Security Policy (CSP)

Se usi CSP, aggiungi Didit alla direttiva frame-src:

Verifica tra dispositivi

L’iframe InContext supporta automaticamente la verifica tra dispositivi:
  1. L’utente avvia la verifica su desktop
  2. Se la fotocamera non è disponibile, viene mostrato un codice QR
  3. L’utente scansiona il codice QR con il telefono
  4. L’utente completa la verifica sul telefono
  5. L’iframe desktop si aggiorna automaticamente con il risultato
Questo avviene automaticamente, senza alcuna configurazione aggiuntiva.

Risoluzione dei problemi

La fotocamera non funziona

  1. Assicurati che l’iframe includa l’elenco completo delle autorizzazioni
  2. Verifica che il sito sia servito tramite HTTPS
  3. Controlla che l’utente abbia concesso le autorizzazioni della fotocamera al tuo dominio
  4. Prova il metodo Redirect se l’accesso alla fotocamera nell’iframe non funziona

L’iframe non si carica

  1. Controlla eventuali problemi di Content Security Policy (CSP)
  2. Aggiungi https://verify.didit.me alla direttiva frame-src
  3. Controlla la console del browser per eventuali errori

postMessage non ricevuto

  1. Verifica di essere in ascolto sull’origine corretta (https://verify.didit.me, oppure il tuo dominio white label)
  2. Controlla che il listener dell’evento sia aggiunto prima di aprire l’iframe
  3. Controlla il nome e la struttura dell’evento: i tipi hanno il prefisso (didit:completed, non verification_complete) e il payload è annidato in event.data.data

Repository di esempio

Repository GitHub

Visualizza il codice sorgente e gli esempi su GitHub

Ultima modifica il 7 novembre 2026