Revalidasi Senyap
| Atribut | Tipe | Wajib | Deskripsi |
|---|---|---|---|
externalUserId | String | ✅ | Identifikator pengguna di sistem Anda. Otomatis di-hash dengan SHA-256 sebelum transmisi, tidak pernah dikirim dalam teks biasa. |
Langkah 1 — Implementasikan initializeSDK
Buat class/objek UnicoSDK baru, dengan metode statis initializeSDK yang mengembalikan instance UnicoSDK, menerima context dan UnicoSDKConfig dengan sdkKey, bundleId, dan environment Anda. Simpan instance yang dikembalikan — instance ini diperlukan nanti untuk memanggil startSilentValidation dari Java.
UnicoSDK.initializeSDK harus dipanggil sedini mungkin saat aplikasi diluncurkan (misalnya, Application.onCreate). Memanggilnya lebih lambat akan mengurangi waktu pemrosesan di latar belakang dan meningkatkan kemungkinan respons autentikasi yang tidak konklusif.
- Kotlin
- Java
UnicoSDK.initializeSDK(
context,
UnicoSDKConfig(
sdkKey = "your_sdk_key",
bundleId = "your_bundle_id",
environment = Environment.UAT
)
)
UnicoSDK sdk = UnicoSDK.initializeSDK(
context,
new UnicoSDKConfig("your_sdk_key", "your_bundle_id", Environment.UAT)
);
Langkah 2 — Implementasikan startSilentValidation
Setelah initializeSDK, kaitkan pengumpulan data yang sudah berlangsung dengan pengguna yang telah teridentifikasi dengan memanggil startSilentValidation menggunakan PrepareInfo yang berisi externalUserId.
- Kotlin
- Java
val prepareInfo = PrepareInfo(
externalUserId = "external_user_id"
)
UnicoSDK.startSilentValidation(prepareInfo)
.onSuccess { result -> /* ... */ }
.onFailure { error -> /* ... */ }
startSilentValidation adalah fungsi suspend Kotlin dan tidak dapat dipanggil langsung dari Java. Tambahkan bridge Kotlin kecil ke proyek Anda yang menjalankan coroutine dan mengekspos antarmuka callback biasa.
interface SilentAuthCallback {
fun onSuccess(success: Boolean)
fun onFailure(message: String?)
}
object SilentAuthBridge {
@JvmStatic
fun startSilentValidation(
owner: LifecycleOwner,
sdk: UnicoSDK,
externalUserId: String,
callback: SilentAuthCallback
) {
owner.lifecycleScope.launch {
val result = sdk.startSilentValidation(PrepareInfo(externalUserId, null))
result.onSuccess { callback.onSuccess(it.success) }
.onFailure { callback.onFailure(it.message) }
}
}
}
SilentAuthBridge.startSilentValidation(this, sdk, externalUserId, new SilentAuthCallback() {
@Override
public void onSuccess(boolean success) {
/* ... */
}
@Override
public void onFailure(String message) {
/* ... */
}
});
Jika validasi terjadi di awal alur, misalnya saat login, tunggu callback onSuccess sebelum melanjutkan ke Langkah 3.
Langkah 3 — Buat proses dan lakukan 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 pada Langkah 2 di dalam isi permintaan — inilah yang memungkinkan backend mengorelasikan 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",
"imageBase64": "/9j/4AAQSkZJR..."
}'
Respons menyertakan field silentAuth.result dengan hasil autentikasi:
{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"silentAuth": {
"result": "yes"
}
}
| Field | Tipe | Deskripsi |
|---|---|---|
silentAuth.result | string | yes atau no — lihat nilai yang mungkin di bawah ini. |
silentAuth.result — nilai yang mungkin
| Nilai | Arti |
|---|---|
yes | Autentikasi disetujui, pengguna dikenali dengan tingkat keyakinan yang cukup, tidak diperlukan pengambilan data tambahan. |
no | Data tidak cukup untuk menyetujui secara senyap. Disarankan untuk melakukan autentikasi melalui biometrik (selfie) atau metode alternatif lainnya. |