Revalidasi Senyap
Menggunakan mesin Revalidasi Senyap, yang menganalisis konteks perilaku pengguna dalam efek jaringan Unico dan memberikan sinyal keyakinan untuk transaksi saat ini. Dengan kata lain, kami memberikan tingkat keyakinan bahwa inilah pengguna yang diharapkan dalam transaksi tersebut.
Versi minimum: 3.3.0
| Attribute | Type | Required | Description |
|---|---|---|---|
externalUserId | String | ✅ | Pengidentifikasi pengguna di sistem Anda. Di-hash secara otomatis dengan SHA-256 sebelum transmisi, tidak pernah dikirim dalam bentuk teks biasa. |
Langkah 1 — Menerapkan initializeSDK
Panggil metode statis UnicoSDK.initializeSDK, dengan meneruskan AcessoBioConfigDataSource dan environment Anda.
UnicoSDK.initializeSDK harus dipanggil sesegera mungkin saat aplikasi diluncurkan (mis., application(_:didFinishLaunchingWithOptions:)). Memanggilnya lebih lambat mengurangi waktu pemrosesan latar belakang dan meningkatkan kemungkinan respons autentikasi yang tidak meyakinkan.
- Swift
- Objective-C
UnicoSDK.initializeSDK(
config: YourUnicoConfig(),
environment: .UAT
)
[UnicoSDK initializeSDKWithConfig:[YourUnicoConfig new] environment:UAT];
config adalah AcessoBioConfigDataSource yang sama yang sudah Anda terapkan untuk capture — sdkKey berasal dari getHostKey() dan bundle dari getBundleIdentifier():
final class YourUnicoConfig: NSObject, AcessoBioConfigDataSource {
func getBundleIdentifier() -> String { "your_bundle_id" }
func getHostKey() -> String { "your_sdk_key" }
}
Jika environment dihilangkan, nilai defaultnya adalah .PROD.
Langkah 2 — Menerapkan startSilentValidation
Setelah initializeSDK, kaitkan pengumpulan yang sudah berlangsung dengan pengguna yang teridentifikasi dengan memanggil startSilentValidation menggunakan PrepareInfo yang berisi externalUserId.
- Swift
- Objective-C
let prepareInfo = PrepareInfo(externalUserId: "external_user_id")
UnicoSDK.startSilentValidation(prepareInfo: prepareInfo) { result in
switch result {
case .success:
break
case .failure(let error):
print(error.code, error.desc, error.info)
}
}
PrepareInfo *prepareInfo = [[PrepareInfo alloc] initWithExternalUserId:@"external_user_id"
useCase:nil];
[UnicoSDK startSilentValidationWithPrepareInfo:prepareInfo
errorCompletion:^(ErrorBio * _Nullable error) {
if (error == nil) {
// ...
} else {
// error.code, error.desc, error.info
}
}];
Jika validasi terjadi di awal alur, misalnya saat login, tunggu callback keberhasilan sebelum melanjutkan ke Langkah 3.
| Code | Meaning |
|---|---|
75001 | SDK belum diinisialisasi. initializeSDK belum dipanggil, belum selesai, atau gagal. |
75000 | Kegagalan capture generik. |
Langkah 3 — Membuat proses dan melakukan autentikasi
Dengan validasi yang sedang berlangsung, buat proses verifikasi untuk menyelesaikan autentikasi. Lihat Referensi API ▸ API ▸ Buat Proses.
Sertakan externalUserId yang sama yang dikirim dalam PrepareInfo dari Langkah 2 di dalam body permintaan — inilah yang memungkinkan backend mengaitkan pembuatan proses dengan validasi yang sudah berlangsung.
curl -X POST https://api.id.unico.app/processes/v1 \
-H "Authorization: Bearer $TOKEN" \
-H "APIKEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subject": {
"duiType": 1,
"code": "12345678909",
"name": "Luke Skywalker",
"gender": "M",
"birthDate": "2000-05-20",
"email": "[email protected]",
"phone": "5519725570707"
},
"useCase": "Onboarding",
"externalUserId": "external_user_id"
}'
Respons ini mencakup field silentAuth.result yang berisi hasil autentikasi:
{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"silentAuth": {
"result": "yes"
}
}
| Field | Type | Description |
|---|---|---|
silentAuth.result | string | yes atau no — lihat nilai yang mungkin di bawah ini. |
silentAuth.result — nilai yang mungkin
| Value | Meaning |
|---|---|
yes | Autentikasi disetujui, pengguna dikenali dengan keyakinan yang memadai, tidak diperlukan pengambilan tambahan. |
no | Data tidak cukup untuk menyetujui secara senyap. Disarankan untuk melakukan autentikasi melalui biometrik (selfie) atau metode alternatif lain. |