Biometrische Authentifizierung
Authentifizieren Sie Benutzer mit Face ID und Touch ID.
Biometrische Authentifizierung ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Biometrische Authentifizierung mit LocalAuthentication
Face ID und Touch ID ermöglichen es Benutzern, ihre Identität nachzuweisen, ohne ein Passwort einzugeben. Das Framework LocalAuthentication stellt diese Funktion über LAContext bereit. Dieser wertet eine Authentifizierungsrichtlinie aus und teilt Ihnen mit, ob der Benutzer sie erfolgreich bestanden hat.
import LocalAuthentication
let context = LAContext()
// One LAContext object drives a single auth attemptZuerst die Verfügbarkeit prüfen
Rufen Sie vor der Aufforderung immer canEvaluatePolicy auf. Dem Gerät fehlt möglicherweise die biometrische Hardware, der Benutzer hat möglicherweise noch keine biometrischen Merkmale registriert oder die biometrische Authentifizierung wurde möglicherweise gesperrt. Bei einem Fehlschlag gibt die Methode einen Bool-Wert und einen Fehler zurück, der den Grund erklärt.
import LocalAuthentication
func canUseBiometrics() -> Bool {
let context = LAContext()
var error: NSError?
return context.canEvaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics,
error: &error)
}Die beiden Richtlinien
.deviceOwnerAuthenticationWithBiometrics erfordert Face ID oder Touch ID ohne Fallback auf den Gerätecode. .deviceOwnerAuthentication versucht zunächst die biometrische Authentifizierung und verwendet als Fallback den Gerätecode. Wählen Sie abhängig davon, ob die Eingabe eines Gerätecodes akzeptabel ist.
import LocalAuthentication
// Biometrics only (no passcode fallback):
let strict = LAPolicy.deviceOwnerAuthenticationWithBiometrics
// Biometrics with passcode fallback:
let lenient = LAPolicy.deviceOwnerAuthentication
_ = (strict, lenient)Die Richtlinie auswerten
evaluatePolicy führt die Authentifizierung durch und zeigt das Systemfenster für biometrische Authentifizierung an. Die Zeichenfolge localizedReason erklärt dem Benutzer, warum Sie die Authentifizierung anfordern. Die asynchrone Variante gibt einen Bool-Wert zurück oder löst einen Fehler aus.
import LocalAuthentication
func authenticate() async -> Bool {
let context = LAContext()
do {
return try await context.evaluatePolicy(
.deviceOwnerAuthentication,
localizedReason:
String(localized: "Unlock your account"))
} catch {
return false
}
}Den Typ der biometrischen Authentifizierung erkennen
Nach canEvaluatePolicy gibt context.biometryType an, ob das Gerät .faceID, .touchID, .opticID oder .none verwendet. Nutzen Sie diese Information, um in Ihrer eigenen Benutzeroberfläche das passende Symbol und den passenden Text anzuzeigen.
import LocalAuthentication
func biometryLabel() -> String {
let context = LAContext()
_ = context.canEvaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics, error: nil)
switch context.biometryType {
case .faceID: return "Face ID"
case .touchID: return "Touch ID"
case .opticID: return "Optic ID"
default: return "Passcode"
}
}Fehler behandeln
Fehlschläge werden als LAError-Codes zurückgegeben: .userCancel, .userFallback (der Benutzer hat den Gerätecode gewählt), .biometryLockout nach zu vielen Fehlversuchen und .biometryNotEnrolled. Unterscheiden Sie diese Fälle, um hilfreiche Hinweise statt einer allgemeinen Fehlermeldung anzuzeigen.
import LocalAuthentication
func describe(_ error: Error) -> String {
guard let la = error as? LAError else { return "failed" }
switch la.code {
case .userCancel: return "cancelled"
case .biometryLockout: return "locked out"
case .biometryNotEnrolled: return "not set up"
default: return "failed"
}
}Der Verwendungshinweis für Face ID
Um Face ID zu verwenden, müssen Sie NSFaceIDUsageDescription zu Info.plist hinzufügen und darin den Grund erklären. Wenn der Eintrag fehlt, stürzt die App beim ersten Auswerten einer Face-ID-Richtlinie ab. Für Touch ID ist ein solcher Schlüssel nicht erforderlich.
// Info.plist:
// NSFaceIDUsageDescription =
// "We use Face ID to unlock your saved passwords."
let required = "NSFaceIDUsageDescription is mandatory"
_ = requiredDas Authentifizierungsfenster anpassen
Sie können die Aufforderung anpassen: localizedCancelTitle benennt die Abbrechen-Schaltfläche um, und localizedFallbackTitle legt die Fallback-Option fest oder blendet sie bei einem leeren Wert aus. Wenn Sie den Fallback-Titel leeren, unterdrücken Sie die Option zur Eingabe des Gerätecodes.
import LocalAuthentication
func configured() -> LAContext {
let context = LAContext()
context.localizedCancelTitle =
String(localized: "Not now")
context.localizedFallbackTitle = "" // hide fallback
return context
}Eine erfolgreiche Authentifizierung wiederverwenden
Standardmäßig fordert jedes evaluatePolicy erneut zur Authentifizierung auf. Mit touchIDAuthenticationAllowableReuseDuration kann eine kürzlich erfolgreiche Entsperrung eine spätere Prüfung ohne neue Aufforderung erfüllen. Das ist für mehrere zusammengehörige sensible Aktionen innerhalb eines kurzen Zeitfensters nützlich.
import LocalAuthentication
func reusableContext() -> LAContext {
let context = LAContext()
context.touchIDAuthenticationAllowableReuseDuration = 30
return context
}Biometrische Authentifizierung und Keychain-Schutz
LAContext überprüft den Benutzer, schützt Daten jedoch nicht selbst. Für echte Sicherheit kombinieren Sie ihn mit SecAccessControl des Keychain, sodass das Geheimnis erst nach erfolgreicher Authentifizierung kryptografisch ausgelesen werden kann — und nicht lediglich hinter einem geprüften Bool-Wert verborgen ist.
import LocalAuthentication
// A bare evaluatePolicy == true is bypassable if your
// logic is tampered with. Prefer SecAccessControl so
// the data is encrypted until auth succeeds.
let pairing = "combine LAContext with Keychain ACL"
_ = pairingEin vollständiger Entsperrablauf
Kombinieren Sie die Verfügbarkeitsprüfung, eine typgerechte Benutzerinformation, die Auswertung und die Fehlerbehandlung in einer robusten Routine, die Ihre Benutzeroberfläche aufrufen kann.
import LocalAuthentication
func unlock() async -> Bool {
let context = LAContext()
var err: NSError?
guard context.canEvaluatePolicy(
.deviceOwnerAuthentication, error: &err) else {
return false
}
return (try? await context.evaluatePolicy(
.deviceOwnerAuthentication,
localizedReason:
String(localized: "Access your vault"))) ?? false
}Kurztest
Rufen Sie sich den Unterschied zwischen den beiden wichtigsten Richtlinien in Erinnerung.
Zusammenfassung
Sie haben die biometrische Authentifizierung kennengelernt:
- Verwenden Sie
LAContextund rufen Sie vorevaluatePolicyzunächstcanEvaluatePolicyauf. .deviceOwnerAuthenticationWithBiometricsverwendet ausschließlich biometrische Authentifizierung;.deviceOwnerAuthenticationergänzt den Gerätecode als Fallback.- Lesen Sie
biometryTypeaus, um die richtigen Formulierungen zu verwenden, und behandeln SieLAError-Codes wie.biometryLockout. - Fügen Sie
NSFaceIDUsageDescriptionhinzu und kombinieren Sie die biometrische Authentifizierung mitSecAccessControldes Keychain für echten Schutz.
Lerne Swift mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 122
- Lektionen
- 409
Häufig gestellte Fragen
Ist die Lektion „Biometrische Authentifizierung“ kostenlos?
Ja — der vollständige Text von „Biometrische Authentifizierung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Biometrische Authentifizierung“?
Authentifizieren Sie Benutzer mit Face ID und Touch ID. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Swift Academy zu starten?
Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Biometrische Authentifizierung“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?
Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Geheimnisse im Keychain speichern
- Zugriffskontrolle für den Keychain
- Biometrische Authentifizierung
- Datenschutz und Verschlüsselung