Quando usare il reindirizzamento
- Verifica cross-device: inizia da desktop e completa da mobile
- Massima compatibilità: funziona in tutti i browser, inclusi quelli meno recenti
- Integrazione semplice: non serve alcuna configurazione di iframe
- Problemi con la fotocamera: quando l’accesso alla fotocamera in iframe non funziona
Implementazione
Passaggio 1: crea una sessione (backend)
La risposta di creazione della sessione contiene un campo chiamatourl: passa questo valore al browser.
Passaggio 2: reindirizza l’utente (frontend)
HTML:Gestione della callback
Quando la verifica è completata, Didit reindirizza all’URL di callback con i seguenti parametri di query:Esempio Next.js
Esempio Express.js
Esempio Vue Router
Apri in una nuova scheda
Se preferisci tenere aperta la tua app mentre l’utente esegue la verifica:Buone pratiche di sicurezza
Verifica la callback lato server
Considera i parametri di queryverificationSessionId e status come semplici indicazioni dell’interfaccia non attendibili. Conferma sempre la decisione finale sul tuo backend, gestendo il webhook (opzione preferita) oppure recuperando di nuovo la decisione tramite l’API:
Usa i webhook
Per l’integrazione più affidabile, usa i webhook per ricevere i risultati della verifica direttamente sul tuo backend, indipendentemente dal comportamento del browser dell’utente.Flusso cross-device
Il metodo di reindirizzamento supporta in modo naturale la verifica cross-device:- L’utente clicca su “Verifica” sul desktop
- L’utente viene reindirizzato alla pagina di verifica
- Se necessario, l’utente può scansionare il codice QR per continuare da mobile
- Al termine, l’utente viene reindirizzato all’URL di callback: il dispositivo da cui viene effettuato il reindirizzamento è determinato da
callback_method(initiator,completeroboth)
Risoluzione dei problemi
Callback non ricevuta
- Verifica che l’URL di callback sia impostato correttamente quando crei la sessione
- Assicurati che il tuo URL di callback sia raggiungibile da internet
- Controlla che l’URL non contenga errori di battitura o problemi di codifica
Lo stato è sempre “Declined”
- Controlla le impostazioni del workflow nella Didit Console
- Verifica che i documenti di test che usi siano validi
- Consulta i dettagli della sessione tramite API per i motivi specifici del rifiuto
Loop di reindirizzamento
- Assicurati che il gestore della callback non reindirizzi di nuovo alla verifica
- Controlla eventuali problemi di cache nella pagina di callback
- Svuota la cache del browser e riprova
Repository di esempio
Repository GitHub
Consulta il codice sorgente e gli esempi su GitHub