사일런트 재검증
| 속성 | 타입 | 필수 | 설명 |
|---|---|---|---|
externalUserId | String | ✅ | 사용자 시스템 내 식별자입니다. 전송 전 SHA-256으로 자동 해시 처리되며, 평문으로는 전송되지 않습니다. |
1단계 — initializeSDK 구현
정적 메서드 initializeSDK를 가진 새로운 UnicoSDK 클래스/객체를 생성합니다. 이 메서드는 context와, sdkKey, bundleId, environment를 포함하는 UnicoSDKConfig를 매개변수로 받아 UnicoSDK 인스턴스를 반환합니다. 반환된 인스턴스는 보관해 두어야 합니다 — 이후 Java에서 startSilentValidation을 호출할 때 필요합니다.
UnicoSDK.initializeSDK는 앱 실행 시(예: Application.onCreate) 가능한 한 빨리 호출해야 합니다. 이를 늦게 호출하면 백그라운드 처리 시간이 줄어들어 인증 응답이 결론에 이르지 못할 가능성이 높아집니다.
- 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)
);
2단계 — startSilentValidation 구현
initializeSDK 이후, externalUserId를 포함하는 PrepareInfo와 함께 startSilentValidation을 호출하여 이미 진행 중인 수집(collection)을 식별된 사용자와 연결합니다.
- Kotlin
- Java
val prepareInfo = PrepareInfo(
externalUserId = "external_user_id"
)
UnicoSDK.startSilentValidation(prepareInfo)
.onSuccess { result -> /* ... */ }
.onFailure { error -> /* ... */ }
startSilentValidation은 Kotlin suspend 함수이므로 Java에서 직접 호출할 수 없습니다. 코루틴을 실행하고 일반 콜백 인터페이스를 노출하는 작은 Kotlin 브리지를 프로젝트에 추가하세요.
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) {
/* ... */
}
});
검증이 로그인처럼 플로우 시작 시점에 이루어지는 경우, 3단계로 넘어가기 전에 onSuccess 콜백을 기다리세요.
3단계 — 프로세스 생성 및 인증
검증이 진행되는 동안, 인증을 완료하기 위한 검증 프로세스를 생성합니다. API 레퍼런스 ▸ API ▸ 프로세스 생성를 참고하세요.
요청 본문에 2단계의 PrepareInfo에서 전송한 것과 동일한 externalUserId를 포함하세요. 이를 통해 백엔드는 프로세스 생성을 이미 진행 중인 검증과 연관지을 수 있습니다.
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..."
}'
응답에는 인증 결과를 담은 silentAuth.result 필드가 포함됩니다:
{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"silentAuth": {
"result": "yes"
}
}
| 필드 | 타입 | 설명 |
|---|---|---|
silentAuth.result | string | yes 또는 no — 아래 가능한 값을 참고하세요. |
silentAuth.result — 가능한 값
| 값 | 의미 |
|---|---|
yes | 인증이 승인되었으며, 충분한 신뢰도로 사용자가 인식되어 추가 캡처가 필요하지 않습니다. |
no | 사일런트 방식으로 승인하기에 데이터가 충분하지 않습니다. 생체 인증(셀피) 또는 다른 대체 방법을 통한 인증을 권장합니다. |