Liveness (biometrisches Selfie)
Biometrische Selfie-Aufnahme mit integrierter Liveness-Verifizierung. Das SDK führt den Benutzer, bis ein biometrisch gültiges Bild über SmartFrames erhalten wird, und gibt das Bild als Base64 + JWT zurück.
Dieser Aufnahmetyp verwendet die Liveness-Funktion. Eine konzeptionelle Übersicht über die Funktionsweise von Liveness finden Sie auf der Liveness-Funktionsseite.
Das Plugin delegiert an die zugrunde liegenden nativen SDKs:
- Das Plugin öffnet die Kamera (Android oder iOS) mit dem SmartFrame-Overlay.
- Das native SDK führt den Benutzer, das Gesicht innerhalb des Rahmens zu positionieren.
- Validiert Liveness — die Sitzung wird nur abgeschlossen, wenn der Benutzer physisch anwesend ist.
- Gibt ein
ResultCamera-Objekt mitbase64undencrypted(JWT) über den Plattformkanal zurück.
Das SDK hat standardmäßig intelligentes Framing und automatische Aufnahme aktiviert. Konfigurieren Sie den Kameramodus in Ihrem Builder wie folgt:
UnicoCheckCameraOpener _opener = new UnicoCheck(this)
.setAutoCapture(autoCapture: true)
.setSmartFrame(smartFrame: true)
.build();
Die false/true-Werte für die obigen Methoden ändern nicht das Aufnahmeerlebnis; sie werden nur für die interne Logik des SDK verwendet.
Schritt 1 — UnicoListener implementieren
UnicoListener verarbeitet die SDK-Lifecycle-Callbacks. Implementieren Sie die vier obligatorischen Methoden:
| Methode | Wann sie aufgerufen wird |
|---|---|
onErrorUnico(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 _MyHomePageState extends State<MyHomePage> implements UnicoListener {
late UnicoCheckBuilder _unicoCheck;
@override
void onErrorUnico(UnicoError error) {}
@override
void onUserClosedCameraManually() {}
@override
void onSystemClosedCameraTimeoutSession() {}
@override
void onSystemChangedTypeCameraTimeoutFaceInference() {}
}
Alle vier oben genannten Listener-Methoden müssen in Ihrem Projekt erstellt werden (auch ohne jegliche Logik). Andernfalls wird das Projekt nicht erfolgreich kompiliert.
Schritt 2 — Selfie-Listener für UnicoSelfie implementieren
Fügen Sie die Selfie-Callbacks zu Ihrer State-Klasse hinzu:
| Methode | Beschreibung |
|---|---|
onSuccessSelfie(ResultCamera result) | Aufnahme erfolgreich — gibt ResultCamera mit base64 (Vorschau) und encrypted (JWT für die API) zurück |
onErrorSelfie(UnicoError error) | Aufnahme fehlgeschlagen — gibt einen UnicoError mit Code und Beschreibung zurück |
Das Intervall zwischen der Generierung von encrypted und der Übermittlung an die API darf 10 Minuten nicht überschreiten.
@override
void onSuccessSelfie(ResultCamera result) { }
@override
void onErrorSelfie(UnicoError error) { }
Schritt 3 — openCameraSelfie aufrufen
Die Methode openCameraSelfie öffnet die Kamera. Sie benötigt die Implementierung des UnicoSelfie-Listeners und die JSON-Datei mit den Anmeldeinformationen, die im vorherigen Schritt generiert wurde:
_opener.openCameraSelfie(
jsonFileName: androidJsonFileName,
listener: this,
);
Die Methode openCameraSelfie bietet eine Überladung, die Metadaten über UnicoCheckPrepareInfo akzeptiert, um die Identifizierung der Benutzersitzung und des Ablaufs zu unterstützen:
externalUserId(String, erforderlich) — Benutzeridentifikator in Ihrem System. Wird automatisch mit SHA-256 gehasht, bevor die Übertragung erfolgt.useCase(String, optional) — Identifikator für den aktuell ausgeführten Kontext oder Ablauf. Wird im Klartext übertragen.
_opener.openCameraSelfie(
jsonFileName: androidJsonFileName,
listener: this,
prepareInfo: UnicoCheckPrepareInfo(
externalUserId: 'external_user_id',
useCase: 'use_case', // optional
),
);
Die vollständige Ergebnisverarbeitung finden Sie unter Ergebnis empfangen.