Kullanıcılarınızın aşağıdaki gibi OAuth sağlayıcıları kullanarak Firebase ile kimlik doğrulaması yapmasına izin verebilirsiniz: Firebase SDK'sını kullanıp uygulamanıza genel OAuth Giriş'i entegre ederek Twitter'da uçtan uca oturum açma akışını nasıl uygulayacağınızı belirleyin.
Başlamadan önce
Firebase bağımlılıklarını yükleyip yönetmek için Swift Package Manager'ı kullanın.
- Xcode'da, uygulamanız açıkken Dosya > Paket Ekle'yi tıklayın.
- İstendiğinde Firebase Apple platformlar SDK deposunu ekleyin:
- Firebase Authentication kitaplığını seçin.
-ObjC
işaretini, hedefinizin derleme ayarlarındaki Diğer Bağlayıcı İşaretleri bölümüne ekleyin.- İşlemi tamamladığınızda, Xcode otomatik olarak arka planda tutmalarını sağlayabilirsiniz.
https://github.com/firebase/firebase-ios-sdk.git.
Twitter hesaplarını kullanarak kullanıcıların oturumunu açmak için öncelikle Twitter'ı oturum açma hesabı olarak etkinleştirmeniz gerekir Firebase projeniz için sağlayıcı:
Aşağıdaki kapsülleri
Podfile
sayfanıza ekleyin:pod 'FirebaseAuth'
- Firebase konsolunda Auth bölümünü açın.
- Oturum açma yöntemi sekmesinde, Twitter sağlayıcısını etkinleştirin.
- Söz konusu sağlayıcının geliştirici konsolundan API anahtarını ve API gizli anahtarını
sağlayıcı yapılandırması:
- Uygulamanızı kaydetme bir geliştirici uygulaması olarak Twitter'da yükleyin ve uygulamanızın OAuth API anahtarını alın ve API gizli anahtarı.
- Firebase OAuth yönlendirme URI'nizin (ör.
my-app-12345.firebaseapp.com/__/auth/handler
) emin olun uygulamanızın ayarlar sayfasında Yetkilendirme geri çağırma URL'niz olarak Twitter uygulamasının yapılandırması.
- Kaydet'i tıklayın.
Oturum açma akışını Firebase SDK'sı ile yönetme
Oturum açma akışını Firebase Apple platformlar SDK'sı ile yönetmek için aşağıdaki adımları uygulayın:
Xcode projenize özel URL şemaları ekleyin:
- Proje yapılandırmanızı açın: sol ağaç görünümünde yer alır. HEDEFLER bölümünden uygulamanızı seçin, ardından Bilgi sekmesini seçin ve URL Türleri bölümünü genişletin.
- + düğmesini tıklayın ve Kodlanmış Uygulama Kimliğinizi URL olarak ekleyin
şema. Kodlanmış Uygulama Kimliğinizi şurada bulabilirsiniz:
Genel
Firebase konsolunun Ayarlar sayfasındaki Ayarlar bölümünde
uygulamasını indirin. Diğer alanları boş bırakın.
Tamamlandığında yapılandırmanız şuna benzer bir görünümde olacaktır: aşağıdaki (ancak uygulamaya özel değerlerinizle):
Sağlayıcı kimliğini kullanarak OAuthProvider örneği oluşturma twitter.com adresinde bulabilirsiniz.
Swift
var provider = OAuthProvider(providerID: "twitter.com")
Objective-C
FIROAuthProvider *provider = [FIROAuthProvider providerWithProviderID:@"twitter.com"];
İsteğe bağlı: Eklemek istediğiniz ek özel OAuth parametrelerini belirtin OAuth isteğiyle gönderir.
Swift
provider.customParameters = [ "lang": "fr" ]
Objective-C
[provider setCustomParameters:@{@"lang": @"fr"}];
Twitter'ın desteklediği parametreler için bkz. Twitter OAuth dokümanları. Firebase'in gerekli parametrelerini
setCustomParameters
Bu parametreler client_id, redirect_uri, response_type, scope ve state değişkenlerini kullanabilirsiniz.İsteğe bağlı: Uygulamanızın Şu durumlarda
SFSafariViewController
veyaUIWebView
: önleyici'yi kullanabilirsiniz. Buna göre,AuthUIDelegate
protokolüne ve bunucredentialWithUIDelegate
.OAuth sağlayıcı nesnesini kullanarak Firebase ile kimlik doğrulayın.
Swift
provider.getCredentialWith(nil) { credential, error in if error != nil { // Handle error. } if credential != nil { Auth.auth().signIn(with: credential) { authResult, error in if error != nil { // Handle error. } // User is signed in. // IdP data available in authResult.additionalUserInfo.profile. // Twitter OAuth access token can also be retrieved by: // (authResult.credential as? OAuthCredential)?.accessToken // Twitter OAuth ID token can be retrieved by calling: // (authResult.credential as? OAuthCredential)?.idToken // Twitter OAuth secret can be retrieved by calling: // (authResult.credential as? OAuthCredential)?.secret } } }
Objective-C
[provider getCredentialWithUIDelegate:nil completion:^(FIRAuthCredential *_Nullable credential, NSError *_Nullable error) { if (error) { // Handle error. } if (credential) { [[FIRAuth auth] signInWithCredential:credential completion:^(FIRAuthDataResult *_Nullable authResult, NSError *_Nullable error) { if (error) { // Handle error. } // User is signed in. // IdP data available in authResult.additionalUserInfo.profile. // Twitter OAuth access token can also be retrieved by: // authResult.credential.accessToken // Twitter OAuth ID token can be retrieved by calling: // authResult.credential.idToken // Twitter OAuth secret can be retrieved by calling: // authResult.credential.secret }]; } }];
OAuth erişim jetonunu kullanarak Twitter API.
Örneğin, temel profil bilgilerini almak için REST API'yi çağırabilir.
Authorization
üstbilgisindeki erişim jetonunu iletmek:https://api.twitter.com/labs/1/users?usernames=TwitterDev
Yukarıdaki örneklerde oturum açma akışlarına odaklanılsa da Twitter sağlayıcısını mevcut bir kullanıcıya bağlama olanağı. Örneğin, şunları yapabilirsiniz: aynı kullanıcıya birden fazla sağlayıcı bağlayarak iki sağlayıcıdan biriyle oturum açmalarını sağlayabilirsiniz.
Swift
Auth().currentUser.link(withCredential: credential) { authResult, error in if error != nil { // Handle error. } // Twitter credential is linked to the current user. // IdP data available in authResult.additionalUserInfo.profile. // Twitter OAuth access token can also be retrieved by: // (authResult.credential as? OAuthCredential)?.accessToken // Twitter OAuth ID token can be retrieved by calling: // (authResult.credential as? OAuthCredential)?.idToken // Twitter OAuth secret can be retrieved by calling: // (authResult.credential as? OAuthCredential)?.secret }
Objective-C
[[FIRAuth auth].currentUser linkWithCredential:credential completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { if (error) { // Handle error. } // Twitter credential is linked to the current user. // IdP data available in authResult.additionalUserInfo.profile. // Twitter OAuth access token is can also be retrieved by: // ((FIROAuthCredential *)authResult.credential).accessToken // Twitter OAuth ID token can be retrieved by calling: // ((FIROAuthCredential *)authResult.credential).idToken // Twitter OAuth secret can be retrieved by calling: // ((FIROAuthCredential *)authResult.credential).secret }];
Aynı desen
reauthenticateWithCredential
ile de kullanılabilir. Bu işlem şunları yapabilir: gereken hassas işlemler için yeni kimlik bilgilerini almak amacıyla kullanılır. son giriş.Swift
Auth().currentUser.reauthenticateWithCredential(withCredential: credential) { authResult, error in if error != nil { // Handle error. } // User is re-authenticated with fresh tokens minted and // should be able to perform sensitive operations like account // deletion and email or password update. // IdP data available in result.additionalUserInfo.profile. // Additional OAuth access token is can also be retrieved by: // (authResult.credential as? OAuthCredential)?.accessToken // Twitter OAuth ID token can be retrieved by calling: // (authResult.credential as? OAuthCredential)?.idToken // Twitter OAuth secret can be retrieved by calling: // (authResult.credential as? OAuthCredential)?.secret }
Objective-C
[[FIRAuth auth].currentUser reauthenticateWithCredential:credential completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { if (error) { // Handle error. } // User is re-authenticated with fresh tokens minted and // should be able to perform sensitive operations like account // deletion and email or password update. // IdP data available in result.additionalUserInfo.profile. // Additional OAuth access token is can also be retrieved by: // ((FIROAuthCredential *)authResult.credential).accessToken // Twitter OAuth ID token can be retrieved by calling: // ((FIROAuthCredential *)authResult.credential).idToken // Twitter OAuth secret can be retrieved by calling: // ((FIROAuthCredential *)authResult.credential).secret }];
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 içinde 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.