Fitur
- API Sederhana - Pola singleton dengan metode yang mudah digunakan
- Integrasi Fleksibel - Gunakan URL UniLink secara langsung atau buat sesi melalui backend
- Responsif - Berfungsi di browser desktop dan seluler
- Dapat Dikustomisasi - Opsi konfigurasi untuk gaya dan perilaku
- Berbagai Format - Build dalam format ESM, CommonJS, dan UMD
- Dukungan TypeScript - Definisi tipe lengkap disertakan
- Mode Modal & Inline - Pilih antara overlay modal atau embedding inline
- Callback Event - Event real-time untuk progres verifikasi (dimulai, langkah selesai, selesai)
- Manajemen State - Amati state SDK untuk UI kustom
Instalasi
NPM/Yarn
CDN (UMD)
Rilis npm terbaru yang dipublikasikan adalah
0.5.1.
0.5.0 menambahkan DiditSdk.shared.submitEvent() (lihat Kirim event), dan 0.5.1 memungkinkan alur verifikasi yang di-hosting meminta ID pengguna dari dompet ID digital di dalam SDK, serta menetapkan peluncuran yang gagal ke status error dengan errorMessage-nya.
0.4.0 menambahkan opsi kamera yang sudah tersedia di SDK native, termasuk defaultLivenessCamera, yang membuka pengambilan wajah dengan kamera belakang (lihat Opsi kamera).Periksa versi yang terpasang
Manajer paket Anda tetap menjadi acuan utama untuk rilis yang terpasang:0.3.1, ekspor ini dihasilkan dari versi paket di setiap format JavaScript (ESM, CommonJS, UMD, UMD yang diminifikasi) dan di deklarasi TypeScript, sehingga selalu sesuai dengan rilis yang terpasang.
0.3.0 dan sebelumnya melaporkan 0.2.1 dari ekspor ini, terlepas dari versi yang terpasang. Pada rilis tersebut, gunakan npm list atau lockfile Anda sebagai gantinya.
JavaScript Murni
ES Modules / TypeScript
Tag Skrip (UMD)
Contoh Framework
Contoh Web SDK
React, Angular, Svelte, Next.js, Nuxt, Vue, dan lainnya, dengan contoh dan dokumentasi untuk setiap framework.
Metode Integrasi
Ada dua cara untuk mengintegrasikan SDK:Metode 1: URL UniLink (Paling Sederhana)
Gunakan URL UniLink alur kerja Anda langsung dari Didit Console. Tidak diperlukan backend.Metode 2: Sesi backend (direkomendasikan untuk produksi)
Backend Anda membuat sesi melalui Didit API dan mengembalikan URL verifikasi yang di-hosting. Dengan cara ini, Anda memiliki kendali atasvendor_data, callback per sesi, dan metadata, serta dapat membuat sesi sebelum pengguna membuka frontend.
Baca selengkapnya di referensi API Create Session.
Backend (Node.js / Express)
Kolom respons pembuatan sesi bernama
url (lihat skema OpenAPI Create Session). Teruskan langsung ke startVerification({ url }).Konfigurasi
Opsi kamera
Opsi kamera memerlukan
@didit-protocol/sdk-web 0.4.0 atau yang lebih baru.defaultLivenessCamera: 'back' untuk membuka pengambilan wajah dengan kamera belakang, misalnya di kiosk atau saat operator memegang perangkat dan mengarahkannya ke orang yang sedang diverifikasi.
- Nilai lensa yang diterima adalah
'front'dan'back'. Nilai lain akan diabaikan, begitu juga flag tombol pergantian yang bukan boolean. - Jika perangkat tidak memiliki kamera yang diminta, perangkat akan tetap menggunakan kamera yang dimilikinya. Laptop yang diminta
'back'tetap menggunakan webcam-nya. Tombol pergantian disembunyikan pada perangkat berkamera tunggal, apa pun nilai flag-nya. - Opsi liveness berlaku untuk pemeriksaan liveness pasif. Liveness aktif tidak terpengaruh.
- SDK meneruskan opsi ke halaman verifikasi sebagai parameter kueri pada URL verifikasi:
document_camera,liveness_camera,document_camera_switch, danliveness_camera_switch. Jika Anda membuka URL verifikasi secara langsung, bukan melalui SDK, atur parameter tersebut sendiri: tambahkan?liveness_camera=backke URL tanpa string kueri,&liveness_camera=backke URL yang sudah memiliki parameter, atau atur dengan APIURLagar kedua kasus tertangani:
Kirim event
DiditSdk.shared.submitEvent() memasukkan event pengguna akhir (pendaftaran, login, login gagal, logout, reset kata sandi, MFA, perubahan perangkat) ke antrean untuk pemantauan event Didit.
Backend Anda membuat token pemantauan untuk orang tersebut, lalu SDK mengirim event dalam batch beserta sidik jari perangkat.
Jangan pernah mengirim kunci API ke peramban.
Ukuran dan pengguliran modal
Perilaku ukuran di bawah ini memerlukan 0.3.1 atau yang lebih baru. 0.3.0 dan versi sebelumnya dapat memotong alur verifikasi pada viewport desktop dan lanskap yang pendek.
dvh pada peramban yang mendukung unit viewport dinamis dan beralih ke vh pada peramban lama yang masih didukung. Pada lebar 540px atau kurang, modal memenuhi viewport yang terlihat. Tombol tutup dan konfirmasi keluar tetap berada di dalam modal.
Alur verifikasi yang didesain ulang
Semua isi bagian ini berlaku mulai versi 0.5.0, yang belum dirilis. Sampai Anda memperbarui ke versi tersebut, modal tetap menggunakan ukuran yang dijelaskan di atas.
didit:layout:
- Ukuran awal, mulai versi 0.5.0: sampai halaman melaporkan tata letaknya, dan untuk halaman yang tidak pernah melaporkannya, modal tetap menggunakan ukuran maksimum yang ada, yaitu 500px x 700px. Ukuran ini tetap pas di jendela yang pendek dan tetap layar penuh pada 540px ke bawah.
- Tombol tutup, mulai versi 0.5.0: lingkaran berukuran 44px di atas bilah atas halaman. Tombol ini mengikuti tema terang atau gelap pada halaman dan berpindah ke kiri pada bahasa yang ditulis dari kanan ke kiri.
- Mode embedded, mulai versi 0.5.0: tetap memenuhi elemen host-nya, seperti sebelumnya (lihat Mode embedded).
- URL verifikasi, mulai versi 0.5.0: SDK menambahkan
sdk_presentation(modalatauembedded) dan, dalam modal,sdk_close_button(trueataufalse, mengikutishowCloseButton), sehingga halaman mengetahui cara halaman tersebut ditampilkan. - Event, mulai versi 0.5.0: SDK menangani
didit:layoutsendiri dan tidak meneruskannya keonEvent.
Mode embedded
Mode embedded tidak menggunakan batas 500px x 700px pada modal. SDK mengisi area konten elemen host, sehingga berikan elemen tersebut tinggi eksplisit atau tinggi yang dapat ditentukan dengan cara lain:Hasil Verifikasi
SDK mengembalikan tiga jenis hasil:Selesai
Alur verifikasi selesai (disetujui, tertunda, atau ditolak).Tipe TypeScript mendeklarasikan
'Approved' | 'Pending' | 'Declined', tetapi nilainya diteruskan dari status sesi alur yang di-hosting, sehingga Anda juga dapat menerima status lain, seperti In Review. Pending adalah nilai cadangan SDK saat alur tidak melaporkan status apa pun. Perlakukan status sebagai petunjuk, dan andalkan webhook untuk keputusan final.Dibatalkan
Pengguna menutup modal verifikasi.session disertakan jika sessionId sudah diketahui sebelumnya (nilainya bisa undefined jika pengguna membatalkan sebelum iframe melaporkannya).
Gagal
Terjadi error selama verifikasi.Pengelolaan State
Anda dapat memantau state SDK untuk UI kustom:Referensi API
DiditSdk.shared
Instans SDK singleton.Metode
Properti
Callback
Event Terperinci
Lacak progres verifikasi dengan callbackonEvent:
Referensi Event
Koneksi terputus
Jika koneksi pengguna terputus, halaman verifikasi menutupi alur dengan layar “Tidak ada koneksi internet”, alih-alih membiarkan langkah tetap dimuat. Halaman terus memeriksa di latar belakang dan menutup layar itu dengan sendirinya begitu Didit dapat dijangkau kembali, lalu pengguna melanjutkan dari langkah yang sedang mereka jalani. Di dalam modal atau iframe SDK, layar tersebut juga menampilkan Keluar dari Verifikasi: halaman kemudian mengirimdidit:error dengan error: "network_error", diikuti didit:cancelled, dan SDK menutup modal serta memanggil onComplete dengan type: "cancelled".
Mulai versi 0.5.0, pesan didit:layout dari halaman mengatur ukuran modal dan tidak diteruskan ke onEvent. Jika Anda menanamkan halaman dengan iframe sendiri, lihat Ukur iframe dari didit:layout.
Nilai Langkah
Kolomstep dapat berisi salah satu nilai berikut:
document_selection- Pemilihan jenis dokumendocument_front- Sisi depan dokumendocument_back- Sisi belakang dokumenface- Verifikasi wajah/Deteksi Livenessemail- Verifikasi emailphone- Verifikasi teleponpoa- Bukti alamatquestionnaire- Langkah kuesioner
Nilai Saluran
Kolomchannel pada code_sent dapat berisi:
email- Kode dikirim melalui emailsms- Kode dikirim melalui SMSwhatsapp- Kode dikirim melalui WhatsApp
Ukuran Kode
KolomcodeSize pada code_sent menunjukkan panjang kode OTP (misalnya 4 atau 6 digit).