Liveness (biometrisches Selfie)
Biometrische Selfie-Aufnahme mit integrierter Liveness-Prüfung. Das SDK führt den Benutzer, bis über SmartFrames ein biometrisch valides Bild erfasst wird, und gibt das Bild als Base64 + JWT zurück.
Dieser Aufnahmetyp verwendet die Liveness-Funktion. Eine konzeptionelle Übersicht darüber, wie Liveness funktioniert, finden Sie auf der Seite zur Liveness-Funktion.
Das SDK verwaltet die gesamte Aufnahmesitzung:
- Öffnet die Kamera mit der SmartFrame-Überlagerung.
- Führt den Benutzer zum Positionieren seines Gesichts im Rahmen.
- Validiert die Liveness — die Sitzung wird nur abgeschlossen, wenn der Benutzer physisch anwesend ist.
- Gibt ein
SelfieResult-Objekt (AliasResultCamera) mitbase64undencrypted(JWT) zurück.
Das SDK hat standardmäßig intelligentes Framing und automatische Aufnahme aktiviert. Konfigurieren Sie den Kameramodus in Ihrem Builder wie folgt:
- Swift
- Objective-C
unicoCheck.setSmartFrame(true)
unicoCheck.setAutoCapture(true)
[unicoCheck setSmartFrame:true];
[unicoCheck setAutoCapture:true];
Die false/true-Werte für die oben genannten Methoden ändern nicht die Aufnahmeerfahrung; sie werden nur für die interne Logik des SDKs verwendet.
Schritt 1 — AcessoBioManagerDelegate implementieren
AcessoBioManagerDelegate verwaltet die Lifecycle-Callbacks des SDKs. Implementieren Sie die vier obligatorischen Methoden:
| Methode | Wann sie aufgerufen wird |
|---|---|
onErrorAcessoBioManager(error) | Ein Fehler ist während des SDK-Betriebs aufgetreten |
onUserClosedCameraManually() | Der Benutzer hat die Kamera manuell geschlossen |
onSystemClosedCameraTimeoutSession() | Das 40-Sekunden-Sitzungslimit wurde erreicht |
onSystemChangedTypeCameraTimeoutFaceInference() | Kein Gesicht für 13 Sekunden erkannt — wechselt zur manuellen Aufnahme |
- 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
Alle vier oben genannten Delegate-Methoden müssen in Ihrem Projekt erstellt werden (auch ohne Logik). Andernfalls wird das Projekt nicht erfolgreich kompiliert.
Schritt 2 — SelfieCameraDelegate und AcessoBioSelfieDelegate implementieren
Diese Delegates verwalten die Rückruf-Callbacks für das Ergebnis der Selfie-Aufnahme:
| Methode | Beschreibung |
|---|---|
onSuccessSelfie(result) | Aufnahme erfolgreich — gibt SelfieResult mit base64 (Vorschau) und encrypted (JWT für die API) zurück |
onErrorSelfie(errorBio) | Aufnahme fehlgeschlagen — gibt ein ErrorBio mit Code und Beschreibung zurück |
Das Intervall zwischen der Erstellung von encrypted und der Übermittlung an die API darf 10 Minuten nicht überschreiten.
- 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 { }
Schritt 3 — prepareSelfieCamera und open aufrufen
Rufen Sie prepareSelfieCamera mit der SDK-Konfiguration auf. Wenn die Kamera bereit ist, wird das Ereignis onCameraReady mit einem AcessoBioCameraOpenerDelegate ausgelöst — öffnen Sie die Kamera über die Methode open():
onCameraReady(cameraOpener)— Kamera ist bereit; rufen Sieopen(self)auf.onCameraFailed(message)— Kameravorbereitung fehlgeschlagen (ErrorPrepareist eine Erweiterung vonErrorBio).
- 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 { }
Die Methode prepareSelfieCamera bietet eine Überladung, die Metadaten über PrepareInfo akzeptiert, um die Identifizierung der Benutzersitzung und des Ablaufs zu unterstützen:
externalUserId(String, erforderlich) — Benutzerkennung in Ihrem System. Wird vor der Übertragung automatisch mit SHA-256 gehasht.useCase(String, optional) — Kennung für den aktuell ausgeführten Kontext oder Ablauf (z. B."account_opening","password_recovery"). Wird im Klartext übertragen.
- 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];
Zur vollständigen Ergebnisverarbeitung, siehe Ergebnis empfangen.