Kullanıcı başarıyla oturum açtığında özel imzalı jetonlar üretmek için kimlik doğrulama sunucunuzu değiştirerek Firebase Authentication'i özel bir kimlik doğrulama sistemiyle entegre edebilirsiniz. Uygulamanız bu jetonu alır ve Firebase ile kimlik doğrulaması yapmak için kullanır.
Başlamadan önce
- Henüz yapmadıysanız bir Firebase projesi oluşturun ve uygulamanızı kaydedin.
-
Firebase bağımlılıklarını yüklemek ve yönetmek için Swift Package Manager'ı kullanın.
Firebase SDK'larını Apple projenize eklemenin farklı yollarını öğrenmek için- Xcode'da uygulama projeniz açıkken File > Add Packages'a (Dosya > Paket Ekle) gidin.
- İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
- Firebase Authentication kitaplığını seçin.
- Hedefinizin derleme ayarlarının Other Linker Flags (Diğer Bağlayıcı İşaretleri) bölümüne
-ObjCişaretini ekleyin. - İşlem tamamlandığında Xcode, arka planda bağımlılıklarınızı otomatik olarak çözmeye ve indirmeye başlar.
https://github.com/firebase/firebase-ios-sdk.git
- Projenizin sunucu anahtarlarını alın:
-
Firebase konsolunda
Ayarlar > Hizmet hesapları sekmesine gidin. - Firebase Admin SDK bölümünün alt kısmında Yeni Özel Anahtar Oluştur'u tıklayın.
- Yeni hizmet hesabının herkese açık/özel anahtar çifti otomatik olarak bilgisayarınıza kaydedilir. Bu dosyayı kimlik doğrulama sunucunuza kopyalayın.
-
Firebase konsolunda
Firebase ile kimlik doğrulama
FirebaseCoremodülünüUIApplicationDelegatedosyanıza 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 // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Uygulama temsilcinizin
application(_:didFinishLaunchingWithOptions:)yönteminde paylaşılan birFirebaseAppörneği yapılandırın:SwiftUI
// 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];
- SwiftUI kullanıyorsanız bir uygulama temsilcisi oluşturmanız ve bunu
UIApplicationDelegateAdaptorveyaNSApplicationDelegateAdaptoraracılığıylaAppyapınıza eklemeniz gerekir. Ayrıca uygulama temsilcisi swizzling'ini de devre dışı bırakmanız gerekir. Daha fazla bilgi için SwiftUI talimatlarını inceleyin.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- Kullanıcılar uygulamanızda oturum açtığında oturum açma kimlik bilgilerini (ör. kullanıcı adı ve şifre) kimlik doğrulama sunucunuza gönderin. Sunucunuz kimlik bilgilerini kontrol eder ve geçerliyse özel jeton döndürür.
- Kimlik doğrulama sunucunuzdan özel jetonu aldıktan sonra, kullanıcının oturum açması için bu jetonu
signInWithCustomTokenyöntemine iletin:Swift
Auth.auth().signIn(withCustomToken: customToken ?? "") { user, error in // ... }
Objective-C
[[FIRAuth auth] signInWithCustomToken:customToken completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
Sonraki adımlar
Kullanıcı ilk kez oturum açtıktan sonra yeni bir kullanıcı hesabı oluşturulur ve kullanıcının oturum açarken kullandığı kimlik bilgilerine (kullanıcı adı ve şifre, telefon numarası veya kimlik doğrulama sağlayıcı bilgileri) bağlanır. Bu yeni hesap, Firebase projenizin bir parçası olarak depolanır ve kullanıcının nasıl oturum açtığından bağımsız olarak projenizdeki her uygulamada kullanıcıyı tanımlamak için kullanılabilir.
-
Uygulamalarınızda, kullanıcının temel profil bilgilerini
Usernesnesinden alabilirsiniz. Kullanıcıları yönetme başlıklı makaleyi inceleyin. Firebase Realtime Database ve Cloud Storage Güvenlik Kurallarınızda, oturum açmış kullanıcının benzersiz kullanıcı kimliğini
authdeğişkeninden alabilir ve kullanıcının hangi verilere erişebileceğini kontrol etmek için kullanabilirsiniz.
Kimlik doğrulama sağlayıcı kimlik bilgilerini mevcut bir kullanıcı hesabına bağlayarak kullanıcıların birden fazla kimlik doğrulama sağlayıcı kullanarak uygulamanızda oturum açmasına izin verebilirsiniz.
Bir kullanıcının oturumunu kapatmak için
signOut: yöntemini çağırın.
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; }
Tüm kimlik doğrulama hataları için hata işleme kodu da ekleyebilirsiniz. Hataları işleme başlıklı makaleyi inceleyin.