Passer au contenu principal
Intégrez le parcours de vérification Didit directement dans votre application à l’aide d’une iframe. Vos utilisateurs restent ainsi sur votre site, sans redirection.

Vue d’ensemble


La façon la plus rapide de commencer : copiez-collez simplement votre URL UniLink.

De quoi vous avez besoin

  1. Un workflow Didit (créé dans la Console Didit)
  2. Votre URL UniLink (cliquez sur Copy Link sur votre workflow)

Implémentation

⚠️ Obligatoire : l’attribut allow est indispensable pour accéder à la caméra pendant la détection du vivant.

Avantages principaux

  • Configuration en moins d’une minute : aucun backend, aucune clé API
  • Zéro configuration : URL de rappel définie dans les paramètres du workflow
  • Idéal pour les MVP : démarrez immédiatement

Iframe de session API (avec backend)

Pour les intégrations avancées qui nécessitent une personnalisation par session.

Quand l’utiliser

  • Transmettre des vendor_data ou metadata personnalisés par session
  • Définir des URL de rappel différentes par session
  • Suivre les sessions côté serveur avant le début de la vérification
  • Associer les sessions à vos identifiants utilisateur

Implémentation

Étape 1 : créer une session (backend) La réponse de création de session contient un champ nommé url : utilisez-le comme src de l’iframe.
Étape 2 : intégrer l’iframe (frontend)

Écouter les événements (postMessage)

La page de vérification envoie des événements à la fenêtre parente. Chaque message respecte cette enveloppe :
Le payload est imbriqué : lisez event.data.data.sessionId, et non event.data.sessionId :
Événements clés : 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, et didit:layout ({ contentHeight, colorScheme, dir }, voir ci-dessous). La référence des événements du SDK JavaScript répertorie les événements de vérification disponibles sous forme de callbacks typés. À partir de la version 0.5.0, le SDK gère en interne les messages de mise en page au lieu de les transmettre à onEvent.

Dimensionner l’iframe avec didit:layout

La page de vérification indique l’espace dont elle a besoin grâce à un message didit:layout. Elle en envoie un au chargement, puis un autre à chaque changement de hauteur de contenu, de thème ou de direction du texte :
Pour recevoir didit:layout dans votre propre iframe, ajoutez sdk_presentation=embedded à son URL de vérification. À partir de la version 0.5.0, le SDK JavaScript définit la présentation à votre place. Sans paramètre de présentation, la page utilise sa mise en page autonome et n’envoie aucun message de mise en page.
Cet hôte suit les tailles recommandées : une carte fixe à partir de 1024 px de large, un affichage en plein écran à 540 px et moins, et, entre les deux, une iframe de 500 px de large qui prend la hauteur indiquée par la page :
Entre 541 px et 1023 px, cet exemple utilise une hauteur de départ de 700 px tant qu’aucun message de mise en page n’arrive, plafonnée à 90 % de la hauteur visible de la fenêtre. Les tailles pour ordinateur et téléphone s’appliquent immédiatement. Sur téléphone, l’iframe couvre la fenêtre : prévoyez donc un moyen de quitter la vérification dans votre application hôte. Utilisez colorScheme et dir pour adapter les contrôles placés autour de l’iframe au thème et à la direction du texte de la page. Si la connexion de l’utilisateur est interrompue, la page affiche un écran « Aucune connexion Internet » qui se ferme automatiquement dès que la connexion revient. Si l’utilisateur choisit Exit Verification sur cet écran, la page envoie didit:error avec error: "network_error", puis didit:cancelled : fermez l’iframe à la réception de didit:cancelled.

Implémentation en modale

Pour une expérience modale soignée qui se superpose à votre page :

HTML/CSS/JS


Composant React

Un composant React réutilisable pour la vérification en modale :

Utilisation


Composant Vue


Configuration

Autorisations requises

Utilisez cette liste complète d’autorisations pour la capture, la géolocalisation, la copie et la compatibilité des médias :
L’attribut allow délègue des autorisations ; il ne remplace ni le choix de l’utilisateur ni un en-tête Permissions-Policy plus strict sur votre page hôte.

Taille de l’iframe

Le parcours de vérification s’adapte à la taille de son iframe. Dimensionnez l’iframe selon la fenêtre dans laquelle elle est affichée : Pour la plage intermédiaire, commencez à 500px par 700px jusqu’à l’arrivée du premier message didit:layout, avec le même plafond de hauteur. L’exemple du message didit:layout applique les trois tailles, y compris celles pour ordinateur et téléphone, avant l’arrivée de tout message.

Content Security Policy (CSP)

Si vous utilisez CSP, ajoutez Didit à votre directive frame-src :

Vérification multi-appareils

L’iframe InContext prend automatiquement en charge la vérification multi-appareils :
  1. L’utilisateur démarre la vérification sur ordinateur
  2. Si la caméra est indisponible, un code QR s’affiche
  3. L’utilisateur scanne le code QR avec son mobile
  4. L’utilisateur termine la vérification sur son mobile
  5. L’iframe sur ordinateur se met automatiquement à jour avec le résultat
Cela se produit automatiquement, sans configuration supplémentaire.

Dépannage

La caméra ne fonctionne pas

  1. Vérifiez que l’iframe inclut la liste complète des autorisations
  2. Vérifiez que votre site est servi en HTTPS
  3. Vérifiez que l’utilisateur a accordé l’autorisation caméra à votre domaine
  4. Essayez la méthode Redirect si l’accès à la caméra dans l’iframe échoue

L’iframe ne se charge pas

  1. Vérifiez les problèmes liés à la Content Security Policy (CSP)
  2. Ajoutez https://verify.didit.me à votre directive frame-src
  3. Consultez la console du navigateur pour repérer les erreurs

postMessage non reçu

  1. Vérifiez que vous écoutez la bonne origine (https://verify.didit.me, ou votre domaine en marque blanche)
  2. Vérifiez que l’écouteur d’événements est ajouté avant l’ouverture de l’iframe
  3. Vérifiez le nom et la forme de l’événement : les types sont préfixés (didit:completed, et non verification_complete) et le payload est imbriqué sous event.data.data

Exemple de dépôt

Dépôt GitHub

Consultez le code source et les exemples sur GitHub

Dernière modification le 7 novembre 2026