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.
Ce type de capture utilise la capacité Liveness. Pour une présentation conceptuelle du fonctionnement de Liveness, consultez la page de la capacité Liveness.
Le SDK gère l'intégralité de la session de capture :
- Ouvre la caméra avec la superposition SmartFrame.
- Guide l'utilisateur pour positionner son visage dans le cadre.
- Valide le liveness — la session ne se termine que lorsque l'utilisateur est physiquement présent.
- Retourne un objet
SelfieResult(aliasResultCamera) avecbase64etencrypted(JWT).
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 :
- Swift
- Objective-C
unicoCheck.setSmartFrame(true)
unicoCheck.setAutoCapture(true)
[unicoCheck setSmartFrame:true];
[unicoCheck setAutoCapture:true];
Étape 1 — Implémenter AcessoBioManagerDelegate
AcessoBioManagerDelegate gère les callbacks du cycle de vie du SDK. Implémentez les quatre méthodes obligatoires :
| Méthode | Quand 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 |
- Swift
- Objective-C
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() { }
}
@implementation ViewController: UIViewController
- (void)viewDidLoad {
[super viewDidLoad];
unicoCheck = [[AcessoBioManager alloc]initWithViewController:self];
}
- (void)onErrorAcessoBioManager:(ErrorBio *)error { }
- (void)onSystemChangedTypeCameraTimeoutFaceInference { }
- (void)onSystemClosedCameraTimeoutSession { }
- (void)onUserClosedCameraManually { }
@end
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éthode | Description |
|---|---|
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 |
L'intervalle entre la génération de encrypted et son envoi à l'API ne doit pas dépasser 10 minutes.
- Swift
- Objective-C
class ViewController: UIViewController, AcessoBioManagerDelegate,
SelfieCameraDelegate, AcessoBioSelfieDelegate {
func onSuccessSelfie(_ result: SelfieResult!) { }
func onErrorSelfie(_ errorBio: ErrorBio!) { }
}
// .h
@interface ViewController: UIViewController <AcessoBioManagerDelegate,
SelfieCameraDelegate, AcessoBioSelfieDelegate> {
AcessoBioManager *unicoCheck;
}
// .m
- (void)onSuccessSelfie:(SelfieResult *)result {
NSLog(@"%@", result.base64);
}
- (void)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 ; appelezopen(self).onCameraFailed(message)— la préparation de la caméra a échoué (ErrorPrepareest une extension deErrorBio).
- Swift
- Objective-C
@IBAction func openCamera(_ sender: Any) {
unicoCheck.build().prepareSelfieCamera(self, config: YourUnicoConfigClass())
}
func onCameraReady(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
cameraOpener.open(self)
}
func onCameraFailed(_ message: ErrorPrepare!) { }
- (IBAction)openCamera:(UIButton *)sender {
[[unicoCheck build] prepareSelfieCamera:self config:[YourUnicoConfigClass new]];
}
- (void)onCameraReady:(id)cameraOpener {
[cameraOpener open:self];
}
- (void)onCameraFailed:(ErrorPrepare *)message { }
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.
- Swift
- Objective-C
let prepareInfo = PrepareInfo(
externalUserId: "external_user_id",
useCase: "use_case"
)
unicoCheck.build().prepareSelfieCamera(
self,
config: YourUnicoConfigClass(),
prepareInfo: prepareInfo
)
PrepareInfo *prepareInfo = [[PrepareInfo alloc]
initWithExternalUserId:@"external_user_id" useCase:@"flow_id"];
[[unicoCheck build] prepareSelfieCamera:self
config:[YourUnicoConfigClass new]
prepareInfo:prepareInfo];
Pour la gestion complète du résultat, consultez Réception du résultat.