Fonctionnalités
- API simple : motif singleton avec des méthodes faciles à utiliser
- Intégration flexible : utilisez directement l’URL UniLink ou créez des sessions via votre backend
- Adaptatif : fonctionne sur les navigateurs de bureau et mobiles
- Personnalisable : options de configuration pour le style et le comportement
- Formats multiples : versions compilées ESM, CommonJS et UMD
- Prise en charge de TypeScript : définitions de types complètes incluses
- Modes modal et intégré : choisissez entre une superposition modale et une intégration en ligne
- Callbacks d’événements : événements en temps réel sur la progression de la vérification (démarrée, étape terminée, terminée)
- Gestion d’état : observez l’état du SDK pour créer une interface personnalisée
Installation
NPM/Yarn
CDN (UMD)
La dernière version publiée sur npm est
0.5.1.
0.5.0 a ajouté DiditSdk.shared.submitEvent() (voir Envoyer des événements), et 0.5.1 permet au flux hébergé de demander à un portefeuille d’identité numérique la pièce d’identité de l’utilisateur à l’intérieur du SDK. Un lancement échoué reste dans l’état error, avec son errorMessage.
0.4.0 a ajouté les options de caméra que proposent déjà les SDK natifs, dont defaultLivenessCamera, qui ouvre la capture du visage sur la caméra arrière (voir Options de caméra).Vérifier la version installée
Votre gestionnaire de paquets reste la référence pour la version installée :0.3.1, cet export est généré à partir de la version du package dans chaque format JavaScript (ESM, CommonJS, UMD, UMD minifié) ainsi que dans la déclaration TypeScript. Il correspond donc toujours à la version installée.
Les versions 0.3.0 et antérieures renvoient 0.2.1 depuis cet export, quelle que soit la version installée. Sur ces versions, utilisez npm list ou votre fichier de verrouillage à la place.
JavaScript natif
Modules ES / TypeScript
Balise script (UMD)
Exemples par framework
Exemples web du SDK
React, Angular, Svelte, Next.js, Nuxt, Vue, et bien d’autres, avec des exemples et de la documentation pour chaque framework.
Méthodes d’intégration
Il existe deux façons d’intégrer le SDK :Méthode 1 : URL UniLink (la plus simple)
Utilisez directement l’URL UniLink de votre workflow depuis la Console Didit. Aucun backend n’est requis.Méthode 2 : session côté backend (recommandée en production)
Votre backend crée une session via l’API Didit et renvoie l’URL de vérification hébergée. Cela vous permet de contrôlervendor_data, le callback par session et metadata, et de créer des sessions avant que l’utilisateur n’atteigne le frontend.
Pour en savoir plus, consultez la référence de l’API Create Session.
Backend (Node.js / Express)
Le champ de réponse de création de session se nomme
url (voir le schéma OpenAPI de Create Session). Transmettez-le directement à startVerification({ url }).Configuration
Options de caméra
Les options de caméra nécessitent
@didit-protocol/sdk-web 0.4.0 ou une version ultérieure.defaultLivenessCamera: 'back' pour ouvrir la capture du visage avec la caméra arrière, par exemple sur une borne ou lorsqu’un opérateur tient l’appareil et le pointe vers la personne à vérifier.
- Les valeurs d’objectif acceptées sont
'front'et'back'. Toute autre valeur est ignorée, de même qu’un indicateur de bouton de changement qui n’est pas un booléen. - Un appareil qui ne dispose pas de la caméra demandée utilise celle dont il dispose : un ordinateur portable qui demande
'back'utilise toujours sa webcam. Le bouton de changement est masqué sur les appareils à caméra unique, quelles que soient les options. - Les options de détection du vivant s’appliquent à la vérification passive du vivant. La détection du vivant active n’est pas concernée.
- Le SDK transmet les options à la page de vérification sous forme de paramètres de requête de l’URL de vérification :
document_camera,liveness_camera,document_camera_switchetliveness_camera_switch. Si vous ouvrez directement l’URL de vérification au lieu de passer par le SDK, définissez-les vous-même : ajoutez?liveness_camera=backà une URL sans chaîne de requête, ou&liveness_camera=backà une URL qui contient déjà des paramètres. Vous pouvez aussi utiliser l’APIURL, qui gère les deux cas :
Envoi d’événements
DiditSdk.shared.submitEvent() met en file d’attente les événements de l’utilisateur final (inscription, connexion, échec de connexion, déconnexion, réinitialisation du mot de passe, MFA, changement d’appareil) pour la surveillance des événements de Didit.
Votre backend génère un token de surveillance pour la personne, et le SDK envoie les événements par lots avec l’empreinte de l’appareil.
Ne transmettez jamais de clé API au navigateur.
Dimensionnement de la modale et défilement
Le comportement de dimensionnement décrit ci-dessous nécessite la version 0.3.1 ou une version ultérieure. Les versions 0.3.0 et antérieures peuvent tronquer le parcours de vérification sur les fenêtres d’affichage de bureau et en mode paysage lorsque leur hauteur est réduite.
dvh sur les navigateurs qui prennent en charge les unités de fenêtre d’affichage dynamiques, et revient à vh sur les anciens navigateurs pris en charge. Pour des largeurs de 540px et moins, la modale occupe toute la fenêtre d’affichage visible. Le bouton de fermeture et la confirmation de sortie restent à l’intérieur de la modale.
Parcours de vérification repensé
Tout le contenu de cette section s’applique à partir de la version 0.5.0, qui n’est pas encore publiée. Tant que vous n’effectuez pas la mise à niveau, la modale conserve la taille décrite ci-dessus.
didit:layout :
- Taille initiale, à partir de la version 0.5.0 : tant que la page ne signale pas sa mise en page, et pour les pages qui ne le font jamais, la modale conserve la taille maximale existante de 500px sur 700px. Elle reste adaptée aux fenêtres basses et passe en plein écran à 540px et moins.
- Bouton de fermeture, à partir de la version 0.5.0 : un cercle de 44px par-dessus la barre supérieure de la page. Il suit le thème clair ou sombre de la page et se place à gauche dans les langues écrites de droite à gauche.
- Mode intégré, à partir de la version 0.5.0 : il continue de remplir son élément hôte, comme auparavant (voir Mode intégré).
- URL de vérification, à partir de la version 0.5.0 : le SDK ajoute
sdk_presentation(modalouembedded) et, dans une modale,sdk_close_button(trueoufalse, selonshowCloseButton), afin que la page sache comment elle est affichée. - Événements, à partir de la version 0.5.0 : le SDK gère lui-même
didit:layoutet ne le transmet pas àonEvent.
Mode intégré
Le mode intégré n’utilise pas la limite de 500px sur 700px de la modale. Le SDK remplit la zone de contenu de l’élément hôte ; donnez donc à cet élément une hauteur explicite ou résolue d’une autre manière :Résultats de vérification
Le SDK renvoie trois types de résultats :Terminé
Le flux de vérification est terminé (approuvé, en attente ou refusé).Le type TypeScript déclare
'Approved' | 'Pending' | 'Declined', mais la valeur est transmise telle quelle depuis le statut de session du flux hébergé : vous pouvez aussi recevoir d’autres statuts, comme In Review. Pending est la valeur de repli du SDK lorsque le flux n’a signalé aucun statut. Considérez status comme une indication et fiez-vous au webhook pour la décision de référence.Annulé
L’utilisateur a fermé la modale de vérification.session est incluse lorsqu’un sessionId était déjà connu (elle peut valoir undefined si l’utilisateur a annulé avant que l’iframe n’en signale un).
Échec
Une erreur s’est produite pendant la vérification.Gestion de l’état
Vous pouvez observer l’état du SDK pour une interface personnalisée :Référence de l’API
DiditSdk.shared
L’instance unique du SDK.Méthodes
Propriétés
Fonctions de rappel
Événements granulaires
Suivez la progression de la vérification avec la fonction de rappelonEvent :
Référence des événements
Connexion perdue
Si la connexion de l’utilisateur est interrompue, la page de vérification affiche un écran « Pas de connexion Internet » à la place de l’étape en cours, au lieu de laisser une étape en chargement. Elle continue de vérifier la connexion en arrière-plan et ferme l’écran automatiquement dès que Didit redevient accessible. L’utilisateur reprend alors à l’étape où il se trouvait. Dans la modale du SDK ou dans une iframe, l’écran propose aussi Quitter la vérification. La page envoie alorsdidit:error avec error: "network_error", suivi de didit:cancelled, et le SDK ferme la modale et appelle onComplete avec type: "cancelled".
À partir de la version 0.5.0, le message didit:layout de la page dimensionne la modale et n’atteint pas onEvent. Si vous intégrez la page avec votre propre iframe, consultez Dimensionner l’iframe à partir de didit:layout.
Valeurs de l’étape
Le champstep peut prendre l’une des valeurs suivantes :
document_selection- Sélection du type de documentdocument_front- Recto du documentdocument_back- Verso du documentface- Vérification faciale et détection du vivantemail- Vérification de l’e-mailphone- Vérification du téléphonepoa- Justificatif de domicilequestionnaire- Étape du questionnaire
Valeurs du canal
Le champchannel de code_sent peut prendre les valeurs suivantes :
email- Code envoyé par e-mailsms- Code envoyé par SMSwhatsapp- Code envoyé par WhatsApp
Taille du code
Le champcodeSize de code_sent indique la longueur du code OTP (par exemple 4 ou 6 chiffres).