Aller au contenu principal

Liveness (selfie biométrique)

Capture de selfie biométrique avec vérification liveness 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 une présentation conceptuelle du fonctionnement de Liveness, consultez la page de la capacité Liveness.

Fonctionnement

Le SDK gère l'intégralité de la session de capture :

  1. Ouvre la caméra avec la superposition SmartFrame.
  2. Guide l'utilisateur pour positionner son visage dans le cadre.
  3. Valide le liveness — la session ne se termine que lorsque l'utilisateur est physiquement présent.
  4. Retourne un objet SelfieResult (alias ResultCamera) avec base64 et encrypted (JWT).
Mode caméra (capture intelligente)

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

unicoCheck.setSmartFrame(true)
unicoCheck.setAutoCapture(true)
Démarrer une capture liveness
Étape 1 — Implémenter AcessoBioManagerDelegate

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

MéthodeQuand elle est appelée
onErrorAcessoBioManager(error)Une erreur s'est produite lors du fonctionnement du SDK
onUserClosedCameraManually()L'utilisateur a fermé manuellement la caméra
onSystemClosedCameraTimeoutSession()La limite de session de 40 secondes a été atteinte
onSystemChangedTypeCameraTimeoutFaceInference()Aucun visage détecté pendant 13 secondes — bascule en capture manuelle
class ViewController: UIViewController, AcessoBioManagerDelegate {
var unicoCheck: AcessoBioManager!

override func viewDidLoad() {
super.viewDidLoad()
unicoCheck = AcessoBioManager(viewController: self)
}

func onErrorAcessoBioManager(_ error: ErrorBio!) { }
func onUserClosedCameraManually() { }
func onSystemClosedCameraTimeoutSession() { }
func onSystemChangedTypeCameraTimeoutFaceInference() { }
}
Méthodes delegate obligatoires

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

Étape 2 — Implémenter SelfieCameraDelegate et AcessoBioSelfieDelegate

Ces délégués gèrent les callbacks de résultat de la capture selfie :

MéthodeDescription
onSuccessSelfie(result)Capture réussie — retourne SelfieResult avec base64 (aperçu) et encrypted (JWT pour l'API)
onErrorSelfie(errorBio)Capture échouée — retourne un ErrorBio 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.

class ViewController: UIViewController, AcessoBioManagerDelegate,
SelfieCameraDelegate, AcessoBioSelfieDelegate {

func onSuccessSelfie(_ result: SelfieResult!) { }
func onErrorSelfie(_ errorBio: ErrorBio!) { }
}
Étape 3 — Appeler prepareSelfieCamera et open

Appelez prepareSelfieCamera en passant la configuration SDK. Lorsque la caméra est prête, l'événement onCameraReady est déclenché avec un AcessoBioCameraOpenerDelegate — ouvrez la caméra via la méthode open() :

  • onCameraReady(cameraOpener) — la caméra est prête ; appelez open(self).
  • onCameraFailed(message) — la préparation de la caméra a échoué (ErrorPrepare est une extension de ErrorBio).
@IBAction func openCamera(_ sender: Any) {
unicoCheck.build().prepareSelfieCamera(self, config: YourUnicoConfigClass())
}

func onCameraReady(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
cameraOpener.open(self)
}

func onCameraFailed(_ message: ErrorPrepare!) { }
Collecte de données de surveillance

La méthode prepareSelfieCamera fournit une surcharge acceptant des métadonnées via PrepareInfo pour aider à identifier la session utilisateur et le flux :

  • externalUserId (String, obligatoire) — Identifiant de l'utilisateur dans votre système. Automatiquement haché avec SHA-256 avant la transmission.
  • useCase (String, optionnel) — Identifiant du contexte ou du flux en cours d'exécution (ex. : "account_opening", "password_recovery"). Transmis en texte clair.
let prepareInfo = PrepareInfo(
externalUserId: "external_user_id",
useCase: "use_case"
)
unicoCheck.build().prepareSelfieCamera(
self,
config: YourUnicoConfigClass(),
prepareInfo: prepareInfo
)

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