Saltar al contingut principal
El SDK de JavaScript de Didit ofereix una manera programàtica d’integrar la verificació a la teva aplicació web, amb control total sobre l’experiència de l’usuari.

Funcionalitats

  • API simple - Patró singleton amb mètodes fàcils d’utilitzar
  • Integració flexible - Usa directament l’URL d’UniLink o crea sessions des del backend
  • Adaptable - Funciona en navegadors d’escriptori i mòbils
  • Personalitzable - Opcions de configuració per a l’estil i el comportament
  • Múltiples formats - Compilacions ESM, CommonJS i UMD
  • Suport de TypeScript - Definicions de tipus completes incloses
  • Modes modal i en línia - Tria entre una superposició modal o una integració en línia
  • Callbacks d’esdeveniments - Esdeveniments en temps real del progrés de la verificació (iniciada, pas completat, finalitzada)
  • Gestió d’estat - Observa l’estat del SDK per a una interfície personalitzada

Instal·lació

NPM/Yarn

CDN (UMD)

La versió publicada més recent a npm és 0.5.1. 0.5.0 va afegir DiditSdk.shared.submitEvent() (vegeu Enviament d’esdeveniments), i 0.5.1 permet que el flux allotjat demani a una cartera d’identitat digital l’ID de l’usuari dins del SDK, i manté un inici fallit en l’estat error amb el seu errorMessage. 0.4.0 va afegir les opcions de càmera que ja ofereixen els SDK natius, incloent defaultLivenessCamera, que obre la captura facial amb la càmera posterior (vegeu Opcions de la càmera).

Comprova la versió instal·lada

El teu gestor de paquets continua sent la font d’autoritat per determinar la versió instal·lada:
També pots inspeccionar l’exportació en temps d’execució:
A partir de 0.3.1, aquesta exportació es genera a partir de la versió del paquet en tots els formats JavaScript (ESM, CommonJS, UMD, UMD minificat) i en la declaració de TypeScript, de manera que sempre coincideix amb la versió instal·lada. 0.3.0 i anteriors informen de 0.2.1 des d’aquesta exportació, independentment de la versió instal·lada. En aquestes versions, usa npm list o el teu fitxer de bloqueig.

JavaScript pur

Mòduls ES / TypeScript

Etiqueta script (UMD)


Exemples de frameworks

Exemples del SDK web

React, Angular, Svelte, Next.js, Nuxt, Vue i més, amb exemples i documentació per a cada framework.

Mètodes d’integració

Hi ha dues maneres d’integrar el SDK: Usa directament l’URL d’UniLink del teu flux des de la Didit Console. No cal backend.
Obtén la teva URL de UniLink des de la Didit Console → El teu flux → Copia l’enllaç. El session_id generat t’arribarà en un esdeveniment. Consulta aquí la referència d’esdeveniments

Mètode 2: sessió des del backend (recomanat per a producció)

El teu backend crea una sessió mitjançant l’API de Didit i retorna la URL de verificació allotjada. Això et dona control sobre vendor_data, callback per sessió i metadata, i et permet crear sessions abans que l’usuari arribi al frontend. Llegeix més a la referència de l’API Create Session. Backend (Node.js / Express)
Frontend
El camp de resposta en crear la sessió es diu url (vegeu l’esquema OpenAPI de Create Session). Passa’l directament a startVerification({ url }).

Configuració

Consulta les definicions completes de tipus de TypeScript més avall per a la interfície completa DiditSdkConfiguration.

Opcions de càmera

Les opcions de càmera requereixen @didit-protocol/sdk-web 0.4.0 o posterior.
L’SDK web exposa les mateixes quatre opcions de càmera que els SDK nadius. Per defecte, la captura del document obre la càmera posterior i la captura facial (prova de vida) obre la càmera frontal (selfie), i tots dos passos ofereixen un selector de càmera dins de la captura en els dispositius amb més d’una càmera. Estableix defaultLivenessCamera: 'back' per obrir la captura facial amb la càmera posterior, per exemple en un quiosc o quan un operador sosté el dispositiu i l’apunta cap a la persona que es verifica.
  • Els valors d’objectiu acceptats són 'front' i 'back'. Qualsevol altre valor s’ignora, igual que un indicador del selector que no sigui booleà.
  • Si un dispositiu no té la càmera sol·licitada, conserva la que té: un portàtil al qual se li demana 'back' continuarà utilitzant la seva webcam. El selector s’amaga en els dispositius amb una sola càmera, independentment dels indicadors.
  • Les opcions de prova de vida s’apliquen a la comprovació de prova de vida passiva. La prova de vida activa no es veu afectada.
  • L’SDK reenvia les opcions a la pàgina de verificació com a paràmetres de consulta de la URL de verificació: document_camera, liveness_camera, document_camera_switch i liveness_camera_switch. Si obres la URL de verificació directament en lloc de fer-ho a través de l’SDK, configura-les tu mateix: afegeix ?liveness_camera=back a una URL sense cadena de consulta, &liveness_camera=back a una que ja tingui paràmetres, o estableix-les amb l’API URL perquè es cobreixin tots dos casos:

Enviament d’esdeveniments

DiditSdk.shared.submitEvent() posa en cua esdeveniments d’usuari final (registre, inici de sessió, inici de sessió fallit, tancament de sessió, restabliment de contrasenya, MFA, canvi de dispositiu) per al monitoratge d’esdeveniments de Didit. El teu backend genera un token de monitoratge per a la persona, i l’SDK envia els esdeveniments per lots juntament amb l’empremta digital del dispositiu. Mai enviïs una clau d’API al navegador.
Consulta l’enviament d’esdeveniments de l’SDK per al token, els camps dels esdeveniments i el comportament de lliurament.

Mida i desplaçament del modal

El comportament de mida que es descriu a continuació requereix la versió 0.3.1 o posterior. Les versions 0.3.0 i anteriors poden retallar el flux de verificació en pantalles d’escriptori i en orientació horitzontal d’alçada reduïda.
El mode modal utilitza una amplada màxima de 500px i una alçada màxima de 700px. En pantalles d’escriptori i en orientació horitzontal d’alçada reduïda, l’iframe ocupa el 90% de la finestra visible. El flux de verificació es desplaça dins de l’iframe, de manera que tots els passos continuen sent accessibles mentre la pàgina que hi ha darrere del modal roman bloquejada. L’SDK utilitza dvh en els navegadors que admeten unitats de finestra gràfica dinàmiques i recorre a vh en els navegadors compatibles més antics. Amb amplades de 540px o menys, el modal ocupa tota la finestra visible. El botó de tancament i la confirmació de sortida romanen dins del modal.

Flux de verificació redissenyat

Tot el que apareix en aquesta secció s’aplica des de la versió 0.5.0, que encara no està publicada. Fins que actualitzis, el modal conserva la mida descrita anteriorment.
Des de la versió 0.5.0, el modal s’ajusta per si mateix al flux de verificació redissenyat una vegada que la pàgina informa del seu disseny mitjançant un missatge didit:layout:
  • Mida inicial, des de la versió 0.5.0: fins que la pàgina informi del seu disseny, i per a les pàgines que mai ho facin, el modal conserva la mida màxima existent de 500px per 700px. Continua ajustant-se a les finestres curtes i ocupa tota la pantalla a 540px o menys.
  • Botó de tancament, des de la versió 0.5.0: un cercle de 44px sobre la barra superior de la pàgina. Segueix el tema clar o fosc de la pàgina i es mou a l’esquerra en els idiomes d’escriptura de dreta a esquerra.
  • Mode incrustat, des de la versió 0.5.0: continua ocupant el seu element amfitrió, com abans (consulta Mode incrustat).
  • URL de verificació, des de la versió 0.5.0: l’SDK afegeix sdk_presentation (modal o embedded) i, en un modal, sdk_close_button (true o false, segons showCloseButton), perquè la pàgina sàpiga com es mostra.
  • Esdeveniments, des de la versió 0.5.0: l’SDK gestiona didit:layout per si mateix i no el passa a onEvent.
No hi ha res a configurar, i totes les opcions existents continuen funcionant.

Mode incrustat

El mode incrustat no utilitza el límit de 500px per 700px del modal. L’SDK ocupa el contingut de caixa de l’element amfitrió, així que assigna a aquest element una alçada explícita o resolta d’una altra manera:
Si l’amfitrió no té una alçada resolta, l’iframe incrustat tampoc tindrà una alçada utilitzable. Canvia la mida de l’amfitrió quan canviï el teu disseny; l’SDK continuarà omplint-lo automàticament.

Resultats de la verificació

L’SDK retorna tres tipus de resultats:

Completat

El flux de verificació ha finalitzat (aprovada, pendent o rebutjada).
El tipus TypeScript declara 'Approved' | 'Pending' | 'Declined', però el valor es passa tal com el retorna l’estat de la sessió del flux allotjat. També pots rebre altres estats, com ara In Review. Pending és el valor de reserva de l’SDK quan el flux no ha informat cap estat. Tracta status com una pista i fes servir el webhook com a decisió canònica.

Cancel·lat

L’usuari ha tancat la modal de verificació. session s’inclou quan ja es coneixia un sessionId (pot ser undefined si l’usuari ha cancel·lat abans que l’iframe n’informés cap).

Fallat

S’ha produït un error durant la verificació.

Gestió de l’estat

Pots observar l’estat de l’SDK per a una interfície personalitzada:

Referència de l’API

DiditSdk.shared

La instància única de l’SDK.

Mètodes

Propietats

Callbacks


Esdeveniments granulars

Fes el seguiment del progrés de la verificació amb el callback onEvent:

Referència d’esdeveniments

Connexió perduda

Si la connexió de l’usuari es perd, la pàgina de verificació cobreix el flux amb una pantalla «Sense connexió a internet» en lloc de deixar un pas carregant. Continua comprovant-ho en segon pla i tanca la pantalla automàticament tan aviat com Didit torni a ser accessible, i l’usuari continua des del pas on era. Dins del modal del SDK o d’un iframe, la pantalla també ofereix Exit Verification: la pàgina envia aleshores didit:error amb error: "network_error", seguit de didit:cancelled, i el SDK tanca el modal i crida onComplete amb type: "cancelled". A partir de la versió 0.5.0, el missatge didit:layout de la pàgina dimensiona el modal i no arriba a onEvent. Si en canvi incrustes la pàgina amb el teu propi iframe, consulta Dimensiona l’iframe amb didit:layout.

Valors de pas

El camp step pot ser un dels següents:
  • document_selection - Selecció del tipus de document
  • document_front - Cara frontal del document
  • document_back - Cara posterior del document
  • face - Verificació facial/prova de vida
  • email - Verificació de correu electrònic
  • phone - Verificació de telèfon
  • poa - Comprovant de domicili
  • questionnaire - Pas de qüestionari

Valors de canal

El camp channel de code_sent pot ser:
  • email - Codi enviat per correu electrònic
  • sms - Codi enviat per SMS
  • whatsapp - Codi enviat per WhatsApp

Mida del codi

El camp codeSize de code_sent indica la longitud del codi d’un sol ús (per exemple, 4 o 6 dígits).

Tipus de TypeScript

Darrera modificació el 7 de novembre del 2026