Revalidation silencieuse
Utilise le moteur de Revalidation silencieuse, qui analyse le contexte comportemental de l'utilisateur au sein de l'effet de réseau d'Unico et fournit le signal de confiance pour la transaction en cours. Autrement dit, nous fournissons le niveau de confiance qu'il s'agit bien de l'utilisateur attendu dans la transaction.
Version minimale : 4.62.0
| Attribut | Type | Obligatoire | Description |
|---|---|---|---|
externalUserId | String | ✅ | Identifiant de l'utilisateur dans votre système. Automatiquement haché avec SHA-256 avant la transmission, jamais envoyé en texte clair. |
Étape 1 — Impl émenter initializeSDK dans le code natif
initializeSDK n'est pas exposée en Dart. Elle doit s'exécuter avant le démarrage du moteur Flutter, vous l'appelez donc dans le code natif de votre application — Application.onCreate sur Android et application(_:didFinishLaunchingWithOptions:) sur iOS.
UnicoSDK.initializeSDK doit être appelée le plus tôt possible au lancement de l'application. L'appeler plus tard réduit le temps de traitement en arrière-plan et augmente le risque de réponses d'authentification non concluantes.
- 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
)
)
}
}
Enregistrez la classe dans android/app/src/main/AndroidManifest.xml :
<application android:name=".MainApplication">
Le plugin expose le SDK de capture natif à votre application, donc UnicoSDK est déjà présent dans votre classpath de compilation — aucune dépendance supplémentaire n'est nécessaire dans 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)
}
}
Le config est un AcessoBioConfigDataSource — le sdkKey provient de getHostKey() et le bundle de getBundleIdentifier() :
final class YourUnicoConfig: NSObject, AcessoBioConfigDataSource {
func getBundleIdentifier() -> String { "your_bundle_id" }
func getHostKey() -> String { "your_sdk_key" }
}
Si environment est omis, la valeur par défaut est la production.
Étape 2 — Implémenter startSilentValidation
Après initializeSDK, associez la collecte déjà en cours à l'utilisateur identifié en appelant startSilentValidation avec un UnicoCheckPrepareInfo contenant l'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
}
Le Future renvoyé se termine lorsque la validation démarre avec succès, et lève une UnicoError en cas d'échec.
Si la validation a lieu au début du flux, par exemple lors de la connexion, attendez la fin du Future avant de passer à l'étape 3.
| Code | Signification |
|---|---|
75001 | SDK non initialisé. initializeSDK n'a pas été appelée, n'a pas encore terminé, ou a échoué. |
75000 | Échec générique de capture. |
UnicoError.info indique l'étape du flux qui a échoué. Elle est fournie sur iOS et est toujours nulle sur Android.
Étape 3 — Créer le processus et authentifier
Avec la validation en cours, créez le processus de vérification pour finaliser l'authentification. Voir Référence API ▸ API ▸ Créer un processus.
Incluez le même externalUserId envoyé dans le UnicoCheckPrepareInfo à l'étape 2 dans le corps de la requête — c'est ce qui permet au backend de corréler la création du processus avec la validation déjà en cours.
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 réponse inclut le champ silentAuth.result avec le résultat de l'authentification :
{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"silentAuth": {
"result": "yes"
}
}
| Champ | Type | Description |
|---|---|---|
silentAuth.result | string | yes ou no — voir les valeurs possibles ci-dessous. |
silentAuth.result — valeurs possibles
| Valeur | Signification |
|---|---|
yes | Authentification approuvée, utilisateur reconnu avec une confiance suffisante, aucune capture supplémentaire nécessaire. |
no | Données insuffisantes pour approuver silencieusement. Il est recommandé de procéder à une authentification par biométrie (selfie) ou une autre méthode alternative. |