Apple Platforms'da Parola Tabanlı Hesapları kullanarak Firebase ile kimlik doğrulama

Kullanıcılarınızın kimlik doğrulaması yapmak için Firebase Authentication'ı kullanabilirsiniz. kullanıcıların e-posta adreslerini ve şifrelerini kullanması ve uygulamanızın şifre tabanlı hesaplar.

Başlamadan önce

Firebase bağımlılıklarını yükleyip yönetmek için Swift Package Manager'ı kullanın.

  1. Xcode'da, uygulama projeniz açıkken Dosya > Paket Ekle'yi tıklayın.
  2. İstendiğinde Firebase Apple platformlar SDK deposunu ekleyin:
  3.   https://github.com/firebase/firebase-ios-sdk.git
    .
  4. Firebase Authentication kitaplığını seçin.
  5. -ObjC işaretini, hedefinizin derleme ayarlarındaki Diğer Bağlayıcı İşaretleri bölümüne ekleyin.
  6. İşlemi tamamladığınızda, Xcode otomatik olarak arka planda tutmalarını sağlar.

Sonra, bazı yapılandırma adımlarını uygulayın:

  1. Uygulamanızı henüz Firebase projenize bağlamadıysanız bunu Firebase konsolunu kullanın.
  2. E-posta/Şifre ile oturum açmayı etkinleştir:
    1. Firebase konsolunda şu uygulamayı açın: Kimlik Doğrulama bölümü.
    2. Oturum açma yöntemi sekmesinde, E-posta/şifre ile oturum açmayı etkinleştirin yöntemini seçin ve Kaydet'i tıklayın.

Şifre tabanlı hesap oluşturma

Şifreyle yeni bir kullanıcı hesabı oluşturmak için aşağıdaki adımları uygulayın: uygulamanızın oturum açma etkinliği:

  1. FirebaseCore modülünü UIApplicationDelegate ve diğer Yetki verdiğiniz uygulamanın kullandığı Firebase modülleri. Örneğin, Cloud Firestore ve Authentication'ı kullanmak için:

    Hızlı Kullanıcı Arayüzü

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Şunu yapılandır: FirebaseApp paylaşılan örneğinizin application(_:didFinishLaunchingWithOptions:) yöntemi:

    Hızlı Kullanıcı Arayüzü

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. SwiftUI kullanıyorsanız bir uygulama temsilcisi oluşturup bunu eklemeniz gerekir UIApplicationDelegateAdaptor veyaApp NSApplicationDelegateAdaptor. Uygulama yetkilendirmesi kaydırmayı da devre dışı bırakmanız gerekir. Örneğin, daha fazla bilgi için SwiftUI talimatlarına bakın.

    Hızlı Kullanıcı Arayüzü

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. Yeni bir kullanıcı, uygulamanızın kayıt formunu kullanarak kaydolduğunda, yeni kullanıcılar ve uygulamanızın gerektirdiği hesap doğrulama adımları (örneğin, Şifreniz doğru yazılmış ve sizin karmaşıklık düzeyinize uygun şekilde gereksinimlerini karşılayın.
  5. Yeni kullanıcının e-posta adresini ve şifresini ileterek yeni bir hesap oluşturma createUser numaralı telefona.

    Swift

    Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
      // ...
    }

    Objective-C

    [[FIRAuth auth] createUserWithEmail:email
                               password:password
                             completion:^(FIRAuthDataResult * _Nullable authResult,
                                          NSError * _Nullable error) {
      // ...
    }];
    Yeni hesap başarıyla oluşturulduysa kullanıcının oturumu açılır ve kullanıcının hesap verilerini geri çağırma yöntemini kullanın.
ziyaret edin.

Bir kullanıcının e-posta adresi ve şifresiyle oturum açma

Bir kullanıcının şifresiyle oturum açmasını sağlamaya yönelik adımlar, yeni bir hesap oluşturun. Uygulamanızın oturum açma etkinliğinde aşağıdakileri yapın:

  1. FirebaseCore modülünü UIApplicationDelegate ve diğer Yetki verdiğiniz uygulamanın kullandığı Firebase modülleri. Örneğin, Cloud Firestore ve Authentication'ı kullanmak için:

    Hızlı Kullanıcı Arayüzü

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Şunu yapılandır: FirebaseApp paylaşılan örneğinizin application(_:didFinishLaunchingWithOptions:) yöntemi:

    Hızlı Kullanıcı Arayüzü

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. SwiftUI kullanıyorsanız bir uygulama temsilcisi oluşturup bunu eklemeniz gerekir UIApplicationDelegateAdaptor veyaApp NSApplicationDelegateAdaptor. Uygulama yetkilendirmesi kaydırmayı da devre dışı bırakmanız gerekir. Örneğin, daha fazla bilgi için SwiftUI talimatlarına bakın.

    Hızlı Kullanıcı Arayüzü

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. Bir kullanıcı uygulamanızda oturum açtığında kullanıcının e-posta adresini iletin ve signIn şifresi.

    Swift

    Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
      guard let strongSelf = self else { return }
      // ...
    }

    Objective-C

    [[FIRAuth auth] signInWithEmail:self->_emailField.text
                           password:self->_passwordField.text
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
      // ...
    }];
    Kullanıcı başarıyla oturum açarsa kullanıcının hesap verilerini şuradan alabilirsiniz: geri çağırma yöntemine aktarılan sonuç nesnesini ifade eder.

Önerilen: E-posta numaralandırma korumasını etkinleştirin

E-posta adreslerini parametre olarak alan bazı Firebase Authentication yöntemleri e-posta adresinin kayıtlı olması gerekirken diğer e-posta adresinin kayıtlı olması gereken belirli hatalar (örneğin, e-posta adresi ve şifreyle oturum açarken) veya kayıtlı . Bu, kullanıcılara belirli çözümler önermek için yararlı olsa da tarafından kaydedilmiş e-posta adreslerini bulabilmek için kötü niyetli kişiler tarafından yardımcı olur.

Bu riski azaltmak için e-posta numaralandırma korumasını etkinleştirmenizi öneririz. projeniz için Google Cloud gcloud aracını kullanın. Bu etkinleştirildiğinde, özellik, Firebase Authentication'ın hata bildirme davranışını değiştirir: Uygulamanızın, daha kesin hatalara dayanmıyor.

Sonraki adımlar

Kullanıcı ilk kez oturum açtığında yeni bir kullanıcı hesabı oluşturulur ve bilgileri (kullanıcı adı ve şifre, telefon numarası) Numara veya kimlik doğrulama sağlayıcı bilgileri (oturum açan kullanıcı). Bu yeni Firebase projenizin bir parçası olarak saklanır ve aşağıdaki verileri tanımlamak için kullanılabilir: nasıl oturum açarsa açsın, projenizdeki tüm uygulamalarda kullanılır.

  • Uygulamalarınızda, kullanıcıların temel profil bilgilerini şuradan alabilirsiniz: User nesnesini tanımlayın. Kullanıcıları Yönetme başlıklı makaleye göz atın.

  • Firebase Realtime Database ve Cloud Storage'ınızda Güvenlik Kuralları'nı kullanarak şunları yapabilirsiniz: auth değişkeninden, oturum açmış kullanıcının benzersiz kullanıcı kimliğini alabilirsiniz. ve kullanıcının hangi verilere erişebileceğini kontrol etmek için kullanılır.

Kullanıcıların çoklu kimlik doğrulama kullanarak uygulamanızda oturum açmasına izin verebilirsiniz yetkilendirme sağlayıcısının kimlik bilgilerini hesaba katılmaz.

Bir kullanıcının oturumunu kapatmak için numaralı telefonu arayın signOut: değerleridir.

Swift

let firebaseAuth = Auth.auth()
do {
  try firebaseAuth.signOut()
} catch let signOutError as NSError {
  print("Error signing out: %@", signOutError)
}

Objective-C

NSError *signOutError;
BOOL status = [[FIRAuth auth] signOut:&signOutError];
if (!status) {
  NSLog(@"Error signing out: %@", signOutError);
  return;
}

Ayrıca tüm kimlik doğrulama aralığı için hata işleme kodu da ekleyebilirsiniz. hatalar. Hataları İşleme bölümüne bakın.