Lewati ke konten utama

Liveness (selfie biometrik)

Tangkapan selfie biometrik dengan verifikasi liveness terintegrasi. SDK memandu pengguna hingga frame yang valid secara biometrik diperoleh melalui SmartFrames dan mengembalikan gambar dalam format Base64 + JWT.

Capability

Tipe tangkapan ini menggunakan kemampuan Liveness. Untuk gambaran konseptual tentang cara kerja Liveness, lihat halaman kemampuan Liveness.

Cara kerjanya

SDK mengelola seluruh sesi tangkapan:

  1. Membuka kamera dengan overlay SmartFrame.
  2. Memandu pengguna untuk memposisikan wajah mereka di dalam frame.
  3. Memvalidasi liveness — sesi hanya selesai ketika pengguna benar-benar hadir secara fisik.
  4. Mengembalikan objek dengan base64 (pratinjau) dan encrypted (JWT untuk API) melalui callback success.
Mode kamera (smart vs normal)

Web mengekspos dua mode kamera melalui SelfieCameraTypes:

  • SelfieCameraTypes.NORMAL — mode kamera standar (tangkapan manual).
  • SelfieCameraTypes.SMART — mode kamera cerdas dengan tangkapan otomatis dan panduan siluet.

Saat menggunakan SMART, Anda juga harus memuat model computer vision melalui setModelsPath selama inisialisasi.

Memulai tangkapan liveness
Langkah 1 — Implementasikan objek callback

Web SDK menggunakan objek callback — yang diteruskan ke open() — untuk menangani event sukses dan error. Kedua handler bersifat wajib:

HandlerKapan dipanggil
on.success(obj)Tangkapan berhasil diselesaikan — menerima objek dengan base64 dan encrypted
on.error(error)Terjadi error selama sesi — menerima ErrorBio
const callback = {
on: {
success: (obj) => {
console.log(obj.base64);
console.log(obj.encrypted);
},
error: (error) => {
console.error(error);
}
}
};
Callback wajib

Objek callback bersifat wajib. Jika tidak diimplementasikan dengan benar (mencakup event success dan error), SDK akan melempar pengecualian yang, jika tidak ditangani, akan ditampilkan di konsol pengguna.

Langkah 2 — Bangun kamera dan siapkan sesi selfie

Bangun instans kamera dan panggil prepareSelfieCamera dengan meneruskan UnicoConfig dan SelfieCameraTypes yang diinginkan:

Kedaluwarsa token

Interval antara pembuatan encrypted dan pengirimannya ke API tidak boleh melebihi 10 menit.

const unicoCamera = unicoCameraBuilder.build();

const config = new UnicoConfig()
.setHostname("<YOUR_HOSTNAME>")
.setHostKey("<YOUR_HOST_KEY>");

unicoCamera.prepareSelfieCamera(
config,
SelfieCameraTypes.SMART
).then(cameraOpener => {
cameraOpener.open(callback);
}).catch(error => {
console.error(error);
});
tips

Untuk mengoptimalkan waktu mulai kamera, Anda dapat memisahkan panggilan ke prepareSelfieCamera() dan open() — tetap mempersiapkan langkah prepare selagi pengguna menavigasi ke layar tangkapan.

Langkah 3 — (opsional) Gunakan di dalam iFrame

Web SDK mendukung Interactive Liveness yang disematkan dalam iFrame melalui prepareSelfieCameraForIFrame():

unicoCamera.prepareSelfieCameraForIFrame(
config,
SelfieCameraTypes.SMART
).then(cameraOpener => {
cameraOpener.open(callback);
}).catch(error => {
console.error(error);
});

Implementasikan elemen <iframe> dengan izin yang diperlukan:

<iframe allow="fullscreen;camera;geolocation" allowFullScreen src="your_app_url"></iframe>
Metode harus sesuai konteks

prepareSelfieCameraForIFrame() hanya berfungsi di dalam iFrame — menggunakannya di luar akan menghasilkan error 73724. Demikian pula, menggunakan prepareSelfieCamera() di dalam iFrame juga menghasilkan error 73724.

Layar penuh di iPhone

Untuk melakukan tangkapan, halaman harus dalam mode layar penuh agar SDK dapat mengubah ukuran secara otomatis. Apple membatasi penggunaan API layar penuh khususnya pada iPhone (iPad dapat diterima). Untuk tangkapan pada iPhone, konfigurasikan posisi iFrame secara manual.

Untuk penanganan hasil selengkapnya, lihat Menerima hasil.