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.
Tipe tangkapan ini menggunakan kemampuan Liveness. Untuk gambaran konseptual tentang cara kerja Liveness, lihat halaman kemampuan Liveness.
SDK mengelola seluruh sesi tangkapan:
- Membuka kamera dengan overlay SmartFrame.
- Memandu pengguna untuk memposisikan wajah mereka di dalam frame.
- Memvalidasi liveness — sesi hanya selesai ketika pengguna benar-benar hadir secara fisik.
- Mengembalikan objek dengan
base64(pratinjau) danencrypted(JWT untuk API) melalui callbacksuccess.
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.
Langkah 1 — Implementasikan objek callback
Web SDK menggunakan objek callback — yang diteruskan ke open() — untuk menangani event sukses dan error. Kedua handler bersifat wajib:
| Handler | Kapan 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);
}
}
};
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:
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);
});
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>
prepareSelfieCameraForIFrame() hanya berfungsi di dalam iFrame — menggunakannya di luar akan menghasilkan error 73724. Demikian pula, menggunakan prepareSelfieCamera() di dalam iFrame juga menghasilkan error 73724.
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.