Kullanıcılarınızın e-posta adreslerini ve şifrelerini kullanarak Firebase ile kimlik doğrulaması yapmalarına olanak sağlamak ve uygulamanızın şifre tabanlı hesaplarını yönetmek için Firebase Kimlik Doğrulamasını kullanabilirsiniz.
Sen başlamadan önce
Firebase bağımlılıklarını yüklemek ve yönetmek için Swift Paket Yöneticisini kullanın.
- Xcode'da uygulama projeniz açıkken Dosya > Paket Ekle'ye gidin.
- İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
- Firebase Kimlik Doğrulama kitaplığını seçin.
-
-ObjC
bayrağını hedefinizin derleme ayarlarının Diğer Bağlayıcı Bayrakları bölümüne ekleyin. - Bitirdiğinizde Xcode, bağımlılıklarınızı arka planda otomatik olarak çözmeye ve indirmeye başlayacaktır.
https://github.com/firebase/firebase-ios-sdk.git
Daha sonra bazı yapılandırma adımlarını gerçekleştirin:
- Uygulamanızı henüz Firebase projenize bağlamadıysanız bunu Firebase konsolundan yapın.
- E-posta/Şifreyle oturum açmayı etkinleştirin:
- Firebase konsolunda Kimlik Doğrulama bölümünü açın.
- Oturum açma yöntemi sekmesinde, E-posta/şifreyle oturum açma yöntemini etkinleştirin ve Kaydet'e tıklayın.
Şifre tabanlı bir hesap oluşturun
Şifreli yeni bir kullanıcı hesabı oluşturmak için uygulamanızın oturum açma etkinliğinde aşağıdaki adımları tamamlayın:
-
FirebaseCore
modülünüUIApplicationDelegate
ve uygulama temsilcinizin kullandığı diğer Firebase modüllerine aktarın. Örneğin, Cloud Firestore ve Authentication'ı kullanmak için:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Süratli
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Amaç-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Uygulama temsilcinizin
application(_:didFinishLaunchingWithOptions:)
yöntemindeFirebaseApp
paylaşılan örneğini yapılandırın:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Süratli
// Use Firebase library to configure APIs FirebaseApp.configure()
Amaç-C
// Use Firebase library to configure APIs [FIRApp configure];
- SwiftUI kullanıyorsanız, bir uygulama temsilcisi oluşturmalı ve bunu
UIApplicationDelegateAdaptor
veyaNSApplicationDelegateAdaptor
aracılığıylaApp
yapınıza eklemelisiniz. Ayrıca uygulama temsilcisinin swizzling özelliğini de devre dışı bırakmalısınız. Daha fazla bilgi için SwiftUI talimatlarına bakın.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- Yeni bir kullanıcı uygulamanızın kayıt formunu kullanarak kaydolduğunda, yeni hesabın şifresinin doğru yazıldığını ve karmaşıklık gereksinimlerinizi karşıladığını doğrulamak gibi uygulamanızın gerektirdiği tüm yeni hesap doğrulama adımlarını tamamlayın.
- Yeni kullanıcının e-posta adresini ve şifresini
createUser
ileterek yeni bir hesap oluşturun.Yeni hesap başarıyla oluşturulduysa kullanıcı oturum açar ve kullanıcının hesap verilerini geri çağırma yöntemine iletilen sonuç nesnesinden alabilirsiniz.Süratli
Auth.auth().createUser(withEmail: email, password: password) { authResult, error in // ... }
Amaç-C
[[FIRAuth auth] createUserWithEmail:email password:password completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
Bir kullanıcıyı e-posta adresi ve şifreyle oturum açın
Bir kullanıcıyı parolayla oturum açma adımları, yeni hesap oluşturma adımlarına benzer. Uygulamanızın oturum açma etkinliğinde aşağıdakileri yapın:
-
FirebaseCore
modülünüUIApplicationDelegate
ve uygulama temsilcinizin kullandığı diğer Firebase modüllerine aktarın. Örneğin, Cloud Firestore ve Authentication'ı kullanmak için:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Süratli
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Amaç-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Uygulama temsilcinizin
application(_:didFinishLaunchingWithOptions:)
yöntemindeFirebaseApp
paylaşılan örneğini yapılandırın:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Süratli
// Use Firebase library to configure APIs FirebaseApp.configure()
Amaç-C
// Use Firebase library to configure APIs [FIRApp configure];
- SwiftUI kullanıyorsanız, bir uygulama temsilcisi oluşturmalı ve bunu
UIApplicationDelegateAdaptor
veyaNSApplicationDelegateAdaptor
aracılığıylaApp
yapınıza eklemelisiniz. Ayrıca uygulama temsilcisinin swizzling özelliğini de devre dışı bırakmalısınız. Daha fazla bilgi için SwiftUI talimatlarına bakın.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- Bir kullanıcı uygulamanızda oturum açtığında, kullanıcının e-posta adresini ve şifresini
signIn
işlemine iletin.Kullanıcı başarıyla oturum açarsa kullanıcının hesap verilerini geri çağırma yöntemine iletilen sonuç nesnesinden alabilirsiniz.Süratli
Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in guard let strongSelf = self else { return } // ... }
Amaç-C
[[FIRAuth auth] signInWithEmail:self->_emailField.text password:self->_passwordField.text completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
Önerilen: E-posta numaralandırma korumasını etkinleştirin
E-posta adreslerini parametre olarak alan bazı Firebase Kimlik Doğrulama yöntemleri, e-posta adresinin kaydedilmesi gerektiğinde kaydedilmemiş olması (örneğin, bir e-posta adresi ve şifreyle oturum açarken) veya kullanılmaması gerektiğinde kaydedilmesi (örneğin, Bir kullanıcının e-posta adresini değiştirirken). Bu, kullanıcılara belirli çözümler önermek açısından yararlı olsa da, kötü niyetli aktörler tarafından kullanıcılarınız tarafından kaydedilen e-posta adreslerinin keşfedilmesi amacıyla da kötüye kullanılabilir.
Bu riski azaltmak amacıyla projeniz için Google Cloud gcloud
aracını kullanarak e-posta numaralandırma korumasını etkinleştirmenizi öneririz. Bu özelliğin etkinleştirilmesinin Firebase Authentication'ın hata raporlama davranışını değiştirdiğini unutmayın: Uygulamanızın daha spesifik hatalara dayalı olmadığından emin olun.
Sonraki adımlar
Bir kullanıcı ilk kez oturum açtıktan sonra, yeni bir kullanıcı hesabı oluşturulur ve oturum açan kullanıcının kimlik bilgileriyle (yani kullanıcı adı ve parolası, telefon numarası veya kimlik doğrulama sağlayıcı bilgileri) ilişkilendirilir. Bu yeni hesap, Firebase projenizin bir parçası olarak depolanır ve kullanıcının nasıl oturum açtığına bakılmaksızın projenizdeki her uygulamada bir kullanıcıyı tanımlamak için kullanılabilir.
Uygulamalarınızda kullanıcının temel profil bilgilerini
User
nesnesinden alabilirsiniz. Bkz . Kullanıcıları Yönetme .Firebase Gerçek Zamanlı Veritabanı ve Bulut Depolama Güvenliği Kurallarınızda , oturum açan kullanıcının benzersiz kullanıcı kimliğini
auth
değişkeninden alabilir ve bunu, kullanıcının hangi verilere erişebileceğini kontrol etmek için kullanabilirsiniz.
Bir kullanıcının oturumunu kapatmak için signOut:
öğesini çağırın.
Süratli
let firebaseAuth = Auth.auth() do { try firebaseAuth.signOut() } catch let signOutError as NSError { print("Error signing out: %@", signOutError) }
Amaç-C
NSError *signOutError; BOOL status = [[FIRAuth auth] signOut:&signOutError]; if (!status) { NSLog(@"Error signing out: %@", signOutError); return; }
Kimlik doğrulama hatalarının tamamı için hata işleme kodunu da eklemek isteyebilirsiniz. Bkz. Hataları İşleme .