메인 콘텐츠로 건너뛰기

사일런트 재검증

MarkdownChatGPTClaude

사일런트 재검증 엔진을 사용하여 유니코의 네트워크 효과 내에서 사용자의 행동 컨텍스트를 분석하고 현재 거래에 대한 신뢰 신호를 제공합니다. 다시 말해, 해당 사용자가 거래에서 예상된 사용자일 신뢰 수준을 제공합니다.

요구 사항

최소 버전: 4.62.0

UnicoCheckPrepareInfo 속성
속성유형필수설명
externalUserIdString✅사용자 시스템 내 식별자입니다. 전송 전에 SHA-256으로 자동 해시 처리되며, 평문으로 전송되지 않습니다.
사일런트 재검증 시작하기
1단계 — 네이티브 코드에서 initializeSDK 구현

initializeSDK는 Dart에 노출되지 않습니다. Flutter 엔진이 시작되기 전에 실행되어야 하므로 앱의 네이티브 코드에서 호출해야 합니다 — Android에서는 Application.onCreate, iOS에서는 application(_:didFinishLaunchingWithOptions:)입니다.

앱 실행 시 호출하세요

UnicoSDK.initializeSDK는 앱 실행 시 가능한 한 빨리 호출되어야 합니다. 더 늦게 호출하면 백그라운드 처리 시간이 줄어들고 인증 응답이 결론에 이르지 못할 가능성이 높아집니다.

import android.app.Application
import com.acesso.acessobio_android.onboarding.UnicoSDK
import com.acesso.acessobio_android.onboarding.models.Environment
import com.acesso.acessobio_android.onboarding.models.UnicoSDKConfig

class MainApplication : Application() {
override fun onCreate() {
super.onCreate()

UnicoSDK.initializeSDK(
this,
UnicoSDKConfig(
sdkKey = "your_sdk_key",
bundleId = "your_bundle_id",
environment = Environment.UAT
)
)
}
}

android/app/src/main/AndroidManifest.xml에 클래스를 등록하세요:

<application android:name=".MainApplication">

플러그인이 네이티브 캡처 SDK를 애플리케이션에 노출하므로 UnicoSDK는 이미 컴파일 classpath에 포함되어 있습니다 — android/app/build.gradle에 추가 의존성이 필요하지 않습니다.

environment를 생략하면 기본값은 운영 환경(production)입니다.

2단계 — startSilentValidation 구현

initializeSDK 이후, externalUserId를 포함하는 UnicoCheckPrepareInfo와 함께 startSilentValidation을 호출하여 이미 진행 중인 수집을 식별된 사용자와 연결하세요.

import 'package:unico_check/unico_check.dart';

try {
await UnicoSilentAuthDefault().startSilentValidation(
UnicoCheckPrepareInfo(externalUserId: 'external_user_id'),
);
} on UnicoError catch (error) {
// error.code, error.description, error.info
}

반환된 Future는 검증이 성공적으로 시작되면 완료되고, 실패 시 UnicoError를 던집니다.

로그인처럼 플로우 시작 시점에 검증이 이루어지는 경우, 3단계로 넘어가기 전에 Future가 완료되기를 기다리세요.

오류
코드의미
75001SDK가 초기화되지 않았습니다. initializeSDK가 호출되지 않았거나, 아직 완료되지 않았거나, 실패했습니다.
75000일반적인 캡처 실패입니다.

UnicoError.info는 실패한 플로우 단계를 담고 있습니다. iOS에서만 제공되며 Android에서는 항상 null입니다.

3단계 — 프로세스 생성 및 인증

검증이 진행되는 동안, 인증을 완료하기 위한 검증 프로세스를 생성하세요. API 참조 ▸ API ▸ Create Process를 참고하세요.

요청 본문에 2단계의 UnicoCheckPrepareInfo에서 전송한 것과 동일한 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"
}'

응답에는 인증 결과를 담은 silentAuth.result 필드가 포함됩니다:

{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"silentAuth": {
"result": "yes"
}
}
필드유형설명
silentAuth.resultstringyes 또는 no — 가능한 값은 아래를 참고하세요.
silentAuth.result — 가능한 값
값의미
yes인증이 승인되었으며, 충분한 신뢰도로 사용자가 인식되어 추가 캡처가 필요하지 않습니다.
no사일런트로 승인하기에 데이터가 충분하지 않습니다. 생체 인증(셀피) 또는 다른 대체 방법을 통한 인증을 권장합니다.