Aller au contenu principal

Liveness (selfie biométrique)

Capture de selfie biométrique avec vérification de vivacité intégrée. Le SDK guide l'utilisateur jusqu'à l'obtention d'une image biométriquement valide via SmartFrames et retourne l'image en Base64 + JWT.

Capacité

Ce type de capture utilise la capacité Liveness. Pour un aperçu conceptuel du fonctionnement de Liveness, consultez la page dédiée à cette capacité.

Fonctionnement

Le plugin délègue aux SDK natifs sous-jacents :

  1. Le plugin ouvre la caméra (Android ou iOS) avec la superposition SmartFrame.
  2. Le SDK natif guide l'utilisateur pour positionner son visage dans le cadre.
  3. Valide la vivacité — la session ne se termine que lorsque l'utilisateur est physiquement présent.
  4. Retourne un objet ResultCamera avec base64 et encrypted (JWT) via le canal de plateforme.
Mode caméra (capture intelligente)

Le SDK a le cadrage intelligent et la capture automatique activés par défaut. Configurez le mode caméra dans votre builder comme suit :

UnicoCheckCameraOpener _opener = _unicoCheck
.setAutoCapture(autoCapture: true)
.setSmartFrame(smartFrame: true)
.build();
Démarrer une capture liveness
Étape 1 — Implémenter UnicoListener

UnicoListener gère les callbacks du cycle de vie du SDK. Implémentez les quatre méthodes obligatoires :

MéthodeQuand elle est appelée
onErrorUnico(error)Une erreur s'est produite lors de l'opération du SDK
onUserClosedCameraManually()L'utilisateur a fermé la caméra manuellement
onSystemClosedCameraTimeoutSession()La limite de session de 40 secondes a été atteinte
onSystemChangedTypeCameraTimeoutFaceInference()Aucun visage détecté pendant 13 secondes — bascule vers la capture manuelle
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {
late UnicoCheckBuilder _unicoCheck;

@override
void onErrorUnico(UnicoError error) {}

@override
void onUserClosedCameraManually() {}

@override
void onSystemClosedCameraTimeoutSession() {}

@override
void onSystemChangedTypeCameraTimeoutFaceInference() {}
}
Méthodes listener obligatoires

Les quatre méthodes listener ci-dessus doivent être créées dans votre projet (même sans aucune logique). Sinon, le projet ne compilera pas correctement.

Étape 2 — Implémenter les listeners selfie sur UnicoSelfie

Ajoutez les callbacks selfie à votre classe d'état :

MéthodeDescription
onSuccessSelfie(ResultCamera result)Capture réussie — retourne ResultCamera avec base64 (aperçu) et encrypted (JWT pour l'API)
onErrorSelfie(UnicoError error)Capture échouée — retourne un UnicoError avec le code et la description
Expiration du token

L'intervalle entre la génération de encrypted et son envoi à l'API ne doit pas dépasser 10 minutes.

@override
void onSuccessSelfie(ResultCamera result) { }

@override
void onErrorSelfie(UnicoError error) { }
Étape 3 — Appeler openCameraSelfie

La méthode openCameraSelfie ouvre la caméra. Elle prend l'implémentation du listener UnicoSelfie :

_opener.openCameraSelfie(listener: this);
Collecte de données de surveillance

La méthode openCameraSelfie fournit une surcharge qui accepte des métadonnées via UnicoCheckPrepareInfo pour aider à identifier la session utilisateur et le flux :

  • externalUserId (String, obligatoire) — Identifiant de l'utilisateur dans votre système. Automatiquement haché en SHA-256 avant transmission.
  • useCase (String, optionnel) — Identifiant du contexte ou du flux en cours d'exécution. Transmis en clair.
_opener.openCameraSelfie(
listener: this,
prepareInfo: UnicoCheckPrepareInfo(
externalUserId: 'external_user_id',
useCase: 'use_case', // optional
),
);

Pour la gestion complète du résultat, consultez Réception du résultat.