Zum Hauptinhalt springen

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.

Funktion

Dieser Aufnahmetyp verwendet die Liveness-Funktion. Eine konzeptionelle Übersicht darüber, wie Liveness funktioniert, finden Sie auf der Seite zur Liveness-Funktion.

Funktionsweise

Das SDK verwaltet die gesamte Aufnahmesitzung:

  1. Öffnet die Kamera mit der SmartFrame-Überlagerung.
  2. Führt den Benutzer zum Positionieren seines Gesichts im Rahmen.
  3. Validiert die Liveness — die Sitzung wird nur abgeschlossen, wenn der Benutzer physisch anwesend ist.
  4. Gibt ein SelfieResult-Objekt (Alias ResultCamera) mit base64 und encrypted (JWT) zurück.
Kameramodus (intelligente Aufnahme)

Das SDK hat standardmäßig intelligentes Framing und automatische Aufnahme aktiviert. Konfigurieren Sie den Kameramodus in Ihrem Builder wie folgt:

unicoCheck.setSmartFrame(true)
unicoCheck.setAutoCapture(true)
Tipp

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.

Eine Liveness-Aufnahme starten
Schritt 1AcessoBioManagerDelegate implementieren

AcessoBioManagerDelegate verwaltet die Lifecycle-Callbacks des SDKs. Implementieren Sie die vier obligatorischen Methoden:

MethodeWann 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
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() { }
}
Obligatorische Delegate-Methoden

Alle vier oben genannten Delegate-Methoden müssen in Ihrem Projekt erstellt werden (auch ohne Logik). Andernfalls wird das Projekt nicht erfolgreich kompiliert.

Schritt 2SelfieCameraDelegate und AcessoBioSelfieDelegate implementieren

Diese Delegates verwalten die Rückruf-Callbacks für das Ergebnis der Selfie-Aufnahme:

MethodeBeschreibung
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
Token-Ablauf

Das Intervall zwischen der Erstellung von encrypted und der Übermittlung an die API darf 10 Minuten nicht überschreiten.

class ViewController: UIViewController, AcessoBioManagerDelegate,
SelfieCameraDelegate, AcessoBioSelfieDelegate {

func onSuccessSelfie(_ result: SelfieResult!) { }
func onErrorSelfie(_ errorBio: ErrorBio!) { }
}
Schritt 3prepareSelfieCamera 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 Sie open(self) auf.
  • onCameraFailed(message) — Kameravorbereitung fehlgeschlagen (ErrorPrepare ist eine Erweiterung von ErrorBio).
@IBAction func openCamera(_ sender: Any) {
unicoCheck.build().prepareSelfieCamera(self, config: YourUnicoConfigClass())
}

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

func onCameraFailed(_ message: ErrorPrepare!) { }
Überwachung der Datenerfassung

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.
let prepareInfo = PrepareInfo(
externalUserId: "external_user_id",
useCase: "use_case"
)
unicoCheck.build().prepareSelfieCamera(
self,
config: YourUnicoConfigClass(),
prepareInfo: prepareInfo
)

Zur vollständigen Ergebnisverarbeitung, siehe Ergebnis empfangen.