0Pricing
Swift Academy · Ders

Biyometrik Kimlik Doğrulama

Kullanıcıların kimliğini Face ID ve Touch ID ile doğrulayın.

Biyometrik Kimlik Doğrulama, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.

LocalAuthentication ile Biyometri

Yüz tanıma ve parmak izi, kullanıcıların parola yazmadan kimliklerini kanıtlamasını sağlar. LocalAuthentication çatısı bunu, bir kimlik doğrulama ilkesini değerlendiren ve kullanıcının başarılı olup olmadığını bildiren LAContext aracılığıyla sunar.

import LocalAuthentication
let context = LAContext()
// One LAContext object drives a single auth attempt

Önce Kullanılabilirliği Denetleme

İstem göstermeden önce her zaman canEvaluatePolicy işlevini çağırın. Cihazda biyometrik donanım bulunmayabilir, kullanıcı kayıtlı olmayabilir veya biyometri kilitlenmiş olabilir. Bu işlev bir doğru/yanlış değeri ve başarısız olması durumunda nedeni açıklayan bir hata döndürür.

import LocalAuthentication
func canUseBiometrics() -> Bool {
    let context = LAContext()
    var error: NSError?
    return context.canEvaluatePolicy(
        .deviceOwnerAuthenticationWithBiometrics,
        error: &error)
}

İki İlke

.deviceOwnerAuthenticationWithBiometrics, parola fallback seçeneği olmadan Yüz Tanıma veya parmak izi gerektirir. .deviceOwnerAuthentication, önce biyometriyi dener, ancak cihaz parolasına fallback yapar. Parolaya izin verilip verilmediğine göre seçim yapın.

import LocalAuthentication
// Biometrics only (no passcode fallback):
let strict = LAPolicy.deviceOwnerAuthenticationWithBiometrics
// Biometrics with passcode fallback:
let lenient = LAPolicy.deviceOwnerAuthentication
_ = (strict, lenient)

İlkeyi Değerlendirme

evaluatePolicy kimlik doğrulamasını gerçekleştirir ve sistemin biyometrik panelini gösterir. localizedReason dizesi, neden istediğinizi kullanıcıya açıklar. Eşzamansız biçim bir doğru/yanlış değeri döndürür veya hata verir.

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
    }
}

Biyometri Türünü Belirleme

canEvaluatePolicy çağrısından sonra context.biometryType, cihazın .faceID, .touchID, .opticID veya .none kullandığını bildirir. Kendi kullanıcı arayüzünüzde doğru simgeyi ve ifadeyi göstermek için bunu kullanın.

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"
    }
}

Hataları Ele Alma

Başarısızlıklar LAError kodları olarak gelir: .userCancel, .userFallback (kullanıcı parolayı seçti), çok fazla başarısız denemeden sonra .biometryLockout ve .biometryNotEnrolled. Genel bir başarısızlık mesajı yerine yararlı yönlendirme sunmak için bu durumlara göre farklı işlemler uygulayın.

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"
    }
}

Yüz Tanıma Kullanım Açıklaması

Yüz tanımayı kullanmak için nedenini açıklayan NSFaceIDUsageDescription anahtarını Info.plist dosyasına eklemeniz gerekir. Bu anahtar eklenmezse, Yüz Tanıma ilkesini ilk değerlendirdiğinizde uygulama çöker. Parmak izi için böyle bir anahtar gerekmez.

// Info.plist:
// NSFaceIDUsageDescription =
//   "We use Face ID to unlock your saved passwords."
let required = "NSFaceIDUsageDescription is mandatory"
_ = required

Paneli Özelleştirme

İstemi özelleştirebilirsiniz: localizedCancelTitle iptal düğmesinin adını değiştirir, localizedFallbackTitle ise fallback seçeneğini belirler veya boş bırakıldığında gizler. Fallback başlığını boş ayarlamak parola seçeneğini gizler.

import LocalAuthentication
func configured() -> LAContext {
    let context = LAContext()
    context.localizedCancelTitle =
        String(localized: "Not now")
    context.localizedFallbackTitle = "" // hide fallback
    return context
}

Başarılı Kimlik Doğrulamayı Yeniden Kullanma

Varsayılan olarak her evaluatePolicy çağrısı yeniden istem gösterir. touchIDAuthenticationAllowableReuseDuration ayarı, kısa bir süre içinde gruplanan hassas işlemler için yakın zamanda başarıyla gerçekleştirilen bir kilit açma işleminin yeni bir istem olmadan sonraki denetimi karşılamasını sağlar.

import LocalAuthentication
func reusableContext() -> LAContext {
    let context = LAContext()
    context.touchIDAuthenticationAllowableReuseDuration = 30
    return context
}

Biyometri ve Anahtar Zinciri Kısıtlaması

LAContext kullanıcıyı doğrular, ancak verileri tek başına korumaz. Gerçek güvenlik için bunu Anahtar Zinciri'ndeki SecAccessControl ile birleştirin; böylece gizli bilgi yalnızca kimlik doğrulaması başarılı olduktan sonra şifreleme açısından okunabilir hâle gelir, yalnızca denetlenmiş bir doğru/yanlış değerinin arkasına gizlenmez.

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"
_ = pairing

Eksiksiz Bir Kilit Açma Akışı

Kullanıcı arayüzünüzün çağırabileceği sağlam ve tek bir yordamda kullanılabilirlik denetimini, türe göre mesajları, değerlendirmeyi ve hata işlemeyi birleştirin.

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
}

Hızlı Kontrol

İki temel ilke arasındaki farkı hatırlayın.

Özet

Biyometrik kimlik doğrulamayı öğrendiniz:

  • LAContext kullanın ve evaluatePolicy çağrısından önce canEvaluatePolicy işlevini çağırın.
  • .deviceOwnerAuthenticationWithBiometrics yalnızca biyometri kullanır; .deviceOwnerAuthentication parola fallback seçeneği ekler.
  • Doğru ifadeyi kullanmak için biometryType değerini okuyun; .biometryLockout gibi LAError kodlarını ele alın.
  • NSFaceIDUsageDescription ekleyin ve gerçek koruma için Anahtar Zinciri'ndeki SecAccessControl ile birlikte kullanın.

Sıkça Sorulan Sorular

“Biyometrik Kimlik Doğrulama” dersi ücretsiz mi?

Evet — “Biyometrik Kimlik Doğrulama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.

“Biyometrik Kimlik Doğrulama” dersinde ne öğreneceğim?

Kullanıcıların kimliğini Face ID ve Touch ID ile doğrulayın. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Swift Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Biyometrik Kimlik Doğrulama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Gizli Bilgileri Keychain'de Saklama
  2. Keychain Erişim Denetimi
  3. Biyometrik Kimlik Doğrulama
  4. Veri Koruma ve Şifreleme
← Swift Academy Sayfasına Dön