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: Yahoo Uçtan uca oturum açma akışını gerçekleştirmek için Firebase SDK'sı. Bu akış yalnızca telefon tabanlı Firebase SDK'larının kullanımı. Bu, yalnızca Android ve Apple platformları.
Başlamadan önce
- Firebase'i C++ projenize ekleyin.
- Firebase konsolunda Auth bölümünü açın.
- Oturum açma yöntemi sekmesinde Yahoo sağlayıcısını etkinleştirin.
- Söz konusu sağlayıcının geliştirici konsolundan İstemci Kimliği ve İstemci Gizli Anahtarı'nı
sağlayıcı yapılandırması:
-
Yahoo OAuth istemcisi kaydetmek için: Yahoo OAuth geliştiricisindeki ile ilgili dokümanlar Yahoo'ya bir web uygulaması kaydetme.
İki COPPA Connect API iznini seçtiğinizden emin olun:
profile
veemail
. - Bu sağlayıcılara uygulama kaydederken şunu kaydettiğinizden emin olun:
Projenizin
*.firebaseapp.com
alan adını uygulamasını indirin.
-
- Kaydet'i tıklayın.
firebase::auth::Auth
sınıfına erişme
Auth
sınıfı, tüm API çağrılarına yönelik ağ geçididir.
- Auth ve Uygulama başlığı dosyalarını ekleyin:
#include "firebase/app.h" #include "firebase/auth.h"
- Başlatma kodunuzda bir
firebase::App
sınıfı.#if defined(__ANDROID__) firebase::App* app = firebase::App::Create(firebase::AppOptions(), my_jni_env, my_activity); #else firebase::App* app = firebase::App::Create(firebase::AppOptions()); #endif // defined(__ANDROID__)
firebase::App
içinfirebase::auth::Auth
sınıfını edinin.App
ileAuth
arasında bire bir eşleme var.firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
Oturum açma akışını Firebase SDK'sı ile yönetme
Oturum açma akışını Firebase SDK'sı ile yönetmek için aşağıdaki adımları uygulayın:
Şununla yapılandırılmış bir
FederatedOAuthProviderData
örneği oluşturun: Yahoo'ya uygun sağlayıcı kimliği.firebase::auth::FederatedOAuthProviderData provider_data(firebase::auth::YahooAuthProvider::kProviderId);
İsteğe bağlı: Eklemek istediğiniz ek özel OAuth parametrelerini belirtin OAuth isteğiyle gönderir.
// Prompt user to re-authenticate to Yahoo. provider_data.custom_parameters["prompt"] = "login"; // Localize to French. provider_data.custom_parameters["language"] = "fr";
Yahoo'nun desteklediği parametreler için Yahoo OAuth dokümanları. Firebase'in gerekli parametrelerini
custom_parameters()
Bu parametreler client_id, redirect_uri, response_type, scope ve state değişkenlerini kullanabilirsiniz.İsteğe bağlı:
profile
dışında ek OAuth 2.0 kapsamları belirtin ve Kimlik doğrulama sağlayıcıdan istekte bulunmak istediğinizemail
. Eğer uygulamasının Yahoo API'lerinden gizli kullanıcı verilerine erişmesi gerektiğinde, API İzinleri altında Yahoo API'lerine Yahoo geliştirici konsolu. İstenen OAuth kapsamları uygulamanın API izinlerinde önceden yapılandırılmış olanları içerir. Örneğin, okuma/yazma kullanıcının kişilerine erişim istendi ve uygulamanın API'sinde önceden yapılandırıldı izinleri için salt okunur OAuth kapsamı yerinesdct-w
iletilmelidirsdct-r
. Aksi takdirde,akış başarısız olur ve yardımcı olur.// Request access to Yahoo Mail API. provider_data.scopes.push_back("mail-r"); // This must be preconfigured in the app's API permissions. provider_data.scopes.push_back("sdct-w");
Daha fazla bilgi edinmek için Yahoo kapsamları dokümanları.
Sağlayıcı verileriniz yapılandırıldıktan sonra, verilerinizi kullanarak FederatedOAuthProvider.
// Construct a FederatedOAuthProvider for use in Auth methods. firebase::auth::FederatedOAuthProvider provider(provider_data);
Auth sağlayıcı nesnesini kullanarak Firebase ile kimlik doğrulayın. Unutmayın, diğer FirebaseAuth işlemleri için, bu işlem, Kullanıcının kimlik bilgilerini girebileceği bir web görünümü sunar.
Oturum açma akışını başlatmak için
SignInWithProvider
numaralı telefonu arayın:firebase::Future<firebase::auth::AuthResult> result = auth->SignInWithProvider(provider_data);
Uygulamanız bu işlemin ardından bekleyebilir veya Gelecekte bir geri çağırma kaydetmemiz gerekir.
Yukarıdaki örneklerde oturum açma akışlarına odaklanılsa da kullanarak bir Yahoo sağlayıcısını mevcut bir kullanıcıya bağlama
LinkWithProvider
Örneğin, birden çok sağlayıcıyı aynı kullanıcıya göstererek bu iki sağlayıcıdan ikisiyle de oturum açabilmesini sağlar.firebase::Future<firebase::auth::AuthResult> result = user.LinkWithProvider(provider_data);
Aynı desen
ReauthenticateWithProvider
ile de kullanılabilir. gereken hassas işlemler için yeni kimlik bilgileri almak üzere kullanılır. son giriş.firebase::Future<firebase::auth::AuthResult> result = user.ReauthenticateWithProvider(provider_data);
Uygulamanız bu işlemin ardından bir geri arama bekleyebilir veya hakkında daha fazla bilgi edinin.
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:
firebase::auth::User
nesne:firebase::auth::User user = auth->current_user(); if (user.is_valid()) { std::string name = user.display_name(); std::string email = user.email(); std::string photo_url = user.photo_url(); // The user's ID, unique to the Firebase project. // Do NOT use this value to authenticate with your backend server, // if you have one. Use firebase::auth::User::Token() instead. std::string uid = user.uid(); }
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()
:
auth->SignOut();