Revalidación Silenciosa
Utiliza el motor de Revalidación Silenciosa, que analiza el contexto de comportamiento del usuario dentro del efecto de red de Unico y ofrece la señal de confianza para la transacción actual. En otras palabras, ofrecemos el nivel de confianza de que se trata del usuario esperado en la transacción.
Versión mínima: 4.62.0
| Atributo | Tipo | Requerido | Descripción |
|---|---|---|---|
externalUserId | String | ✅ | Identificador del usuario en su sistema. Se aplica hash automáticamente con SHA-256 antes de la transmisión, nunca se envía en texto plano. |
Paso 1 — Implementar initializeSDK en el código nativo
initializeSDK no está expuesto en Dart. Debe ejecutarse antes de que se inicie el motor de Flutter, por lo que se llama en el código nativo de su aplicación — Application.onCreate en Android y application(_:didFinishLaunchingWithOptions:) en iOS.
UnicoSDK.initializeSDK debe llamarse lo antes posible al iniciar la aplicación. Llamarlo más tarde reduce el tiempo de procesamiento en segundo plano y aumenta la probabilidad de respuestas de autenticación no concluyentes.
- Android
- iOS
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
)
)
}
}
Registre la clase en android/app/src/main/AndroidManifest.xml:
<application android:name=".MainApplication">
El plugin expone el SDK de captura nativo a su aplicación, por lo que UnicoSDK ya está en su classpath de compilación — no se necesita ninguna dependencia adicional en android/app/build.gradle.
import AcessoBio
import Flutter
import UIKit
@main
class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
UnicoSDK.initializeSDK(config: YourUnicoConfig(), environment: .UAT)
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
El config es un AcessoBioConfigDataSource — el sdkKey proviene de getHostKey() y el bundle de getBundleIdentifier():
final class YourUnicoConfig: NSObject, AcessoBioConfigDataSource {
func getBundleIdentifier() -> String { "your_bundle_id" }
func getHostKey() -> String { "your_sdk_key" }
}
Si se omite environment, el valor predeterminado es producción.
Paso 2 — Implementar startSilentValidation
Después de initializeSDK, asocie la recolección ya en curso con el usuario identificado llamando a startSilentValidation con un UnicoCheckPrepareInfo que contenga el externalUserId.
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
}
El Future devuelto se completa cuando la validación se inicia correctamente, y lanza UnicoError en caso de fallo.
Si la validación ocurre al inicio del flujo, por ejemplo en el inicio de sesión, espere a que el Future se complete antes de continuar con el Paso 3.
| Código | Significado |
|---|---|
75001 | SDK no inicializado. No se llamó a initializeSDK, aún no ha terminado o falló. |
75000 | Fallo genérico de captura. |
UnicoError.info contiene el paso del flujo que falló. Se proporciona en iOS y siempre es nulo en Android.
Paso 3 — Crear el proceso y autenticar
Con la validación en curso, cree el proceso de verificación para completar la autenticación. Consulte Referencia de la API ▸ API ▸ Crear Proceso.
Incluya el mismo externalUserId enviado en el UnicoCheckPrepareInfo del Paso 2 en el cuerpo de la solicitud — esto es lo que permite que el backend correlacione la creación del proceso con la validación ya en curso.
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"
}'
La respuesta incluye el campo silentAuth.result con el resultado de la autenticación:
{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"silentAuth": {
"result": "yes"
}
}
| Campo | Tipo | Descripción |
|---|---|---|
silentAuth.result | string | yes o no — consulte los valores posibles a continuación. |
silentAuth.result — valores posibles
| Valor | Significado |
|---|---|
yes | Autenticación aprobada, usuario reconocido con confianza suficiente, no se necesita captura adicional. |
no | Datos insuficientes para aprobar de forma silenciosa. Se recomienda autenticar mediante biometría (selfie) u otro método alternativo. |