Firebase Projelerindeki kullanıcılar

Firebase user nesnesi, oturum açmış bir kullanıcı hesabını bir uygulama için belirler. Uygulamaların genellikle çok sayıda kayıtlı kullanıcısı vardır ve projesi bir kullanıcı veritabanını paylaşıyor.

Kullanıcı örnekleri, Firebase Authentication örneklerinden bağımsızdır. Dolayısıyla, aynı bağlamda farklı kullanıcılara birden fazla gönderme; tercih edebilir.

Kullanıcı özellikleri

Firebase kullanıcıları sabit bir temel özellikler grubuna sahiptir (benzersiz bir) Kimlik, birincil e-posta adresi, ad ve fotoğraf URL'si; projenin kullanıcı tarafından güncellenebilen veritabanı (iOS, Android, web). Kullanıcı nesnesine doğrudan başka özellikler ekleyemezsiniz; bunun yerine Ek mülkleri Google Cloud gibi diğer depolama hizmetlerinde depolayın. Firestore.

Bir kullanıcı uygulamanıza ilk kez kaydolduğunda, kullanıcının profil verileri doldurulur (kullanarak)

  • Kullanıcı bir e-posta adresi ve şifreyle kaydolduysa, yalnızca birincil e-posta adresi özelliği doldurulur
  • Kullanıcı, Google veya sağlayan ve paylaşılan hesap bilgileri, kullanıcının profilini doldur
  • Kullanıcı özel yetkilendirme sisteminizle kaydolduysa Kullanıcının profiline eklemek istediğiniz bilgiler

Kullanıcı hesabı oluşturulduktan sonra kullanıcının bilgilerini şuraya yeniden yükleyebilirsiniz: kullanıcının başka bir cihazda yapmış olabileceği değişiklikleri dahil eder.

Oturum açma sağlayıcıları

Çeşitli yöntemler kullanarak uygulamalarınızda kullanıcıların oturum açmasını sağlayabilirsiniz: e-posta adresi ve şifre, birleşik kimlik sağlayıcılar ve özel kimlik doğrulamanız bahsedeceğim. Bir kullanıcıyla birden fazla oturum açma yöntemi ilişkilendirebilirsiniz: Örneğin, Kullanıcı bir e-posta adresi ve şifre kullanarak aynı hesapta oturum açabilir veya oturum açın.

Kullanıcı örnekleri, kullanıcıya bağlı her sağlayıcıyı takip eder. Bu sayede değerini girin. Kullanıcıları Yönetme bölümünü inceleyin (iOS, Android, web) kullanıyor.

Geçerli kullanıcı

Bir kullanıcı kaydolduğunda veya oturum açtığında, söz konusu kullanıcı Yetkilendirme örneği. Örnek, kullanıcının durumunu korur, böylece yenilenen sayfası (bir tarayıcıda) veya uygulamayı yeniden başlatmak, kullanıcının ekleyebilirsiniz.

Kullanıcı oturumu kapattığında, Auth örneği kullanıcıya referans göstermeyi durdurur. nesnenin durumunu sürdürmez; mevcut kullanıcı yok. Ancak örneğinin tamamen işlevsel olmaya devam ettiğini unutmayın: kullanıcı verilerine erişmeye ve güncellemeye devam edebilirsiniz.

Kullanıcı yaşam döngüsü

Auth örneğinin mevcut durumunu izlemek için önerilen yöntem işleyicileri (JavaScript'te "gözlemleyiciler" olarak da adlandırılır). Auth dinleyici, Auth nesnesiyle ilgili bir şey olduğunda bildirim alır. Yönetme bölümünü inceleyin Kullanıcı Sayısı (iOS, Android, web) kullanıyor.

Auth dinleyiciye aşağıdaki durumlarda bildirim gönderilir:

  • Auth nesnesinin başlatılması tamamlanır ve bir kullanıcı önceden veya kimlik sağlayıcının oturum açma işleminden yönlendirilmiş bir kullanıcı olabilir. akış
  • Bir kullanıcı oturum açar (geçerli kullanıcı ayarlanır)
  • Kullanıcı oturumu kapatır (mevcut kullanıcı boş hale gelir)
  • Geçerli kullanıcının erişim jetonu yenilenir. Bu durum şu koşulları kabul etmelisiniz:
    • Erişim jetonunun süresi doluyor: Bu, sık karşılaşılan bir durumdur. Yenileme jetonu yeni bir geçerli jeton kümesi almak için kullanılır.
    • Kullanıcı şifresini değiştiriyor: Firebase yeni erişim sorunu yaşıyor ve yeni jetonların geçerlilik süresi dolmuş olarak oluşturulur. Bu, otomatik olarak kullanıcının jetonunun süresinin dolması ve/veya her cihazda kullanıcının oturumunun kapatılmasına neden olabilir.
    • Kullanıcı kimliğini yeniden doğrular: Bazı işlemler için kullanıcının Kimlik bilgileri yakın zamanda düzenlenmiş; bu işlemler arasında hesap silme, birincil e-posta adresi belirleme ve şifre değiştirme. Şunun yerine: kullanıcının oturumunu kapatıp kullanıcının yeniden oturum açmasını sağlayın; kimlik bilgilerini almak ve yeni kimlik bilgilerini yeniden kimlik doğrulaması yöntemini kullanır.

Kullanıcı self servis

Varsayılan olarak Firebase, kullanıcıların kaydolmasına ve hesaplarını silmesine olanak tanır en iyi uygulamaları paylaşacağız. Çoğu durumda bu, ve uygulamanızı ya da hizmetinizi keşfetmesi ve Google'dan ilk katılım (ya da minimum düzeyde sorun.

Bununla birlikte, bazı durumlarda kullanıcıların manuel olarak veya SDK'lar veya API'ler kullanılarak, bir yönetici tarafından Firebase konsolu. Bu durumlarda, kullanıcı işlemlerini devre dışı bırakabilirsiniz. Firebase Authentication Ayarları'ndan sayfası oluşturur. Bu da son kullanıcıların hesap oluşturmasını ve silinmesini engeller. Çok kiracılı yapı kullanıyorsanız HTTP isteğinde bulunmanız gerekir. devre dışı bırakmak için kiracı bazında kullanıma sunduk.

Bir son kullanıcı sisteminizde bir hesap oluşturmaya veya silmeye çalışırsa Firebase hizmeti hata kodu döndürür: Web API çağrıları için auth/admin-restricted-operation veya Android ve iOS için ERROR_ADMIN_RESTRICTED_OPERATION. Proje hedeflerinizin kullanıcı arabiriminde sorunu çözmek için özel işlemler olabilir.

Yetkilendirme jetonları

Firebase ile kimlik doğrulama gerçekleştirdiğinizde üç tane vardır: Karşılaşabileceğiniz yetkilendirme jetonu türleri:

Firebase kimlik jetonu Kullanıcı bir uygulamada oturum açtığında Firebase tarafından oluşturulur. Bu jetonlar, bir kullanıcıyı güvenli bir şekilde tanımlayan imzalı JWT'lerdir. Firebase projesi. Bu jetonlar, bir kullanıcının benzersiz kimlik dizesi de dahil olmak üzere Firebase projesi. Çünkü kimlik jetonlarının bütünlüğü ve emin olmak istiyorsanız, verilerinizi bir arka uç sunucuya gönderebilirsiniz. oturum açmış olan kullanıcısınız.
Kimlik sağlayıcı jetonları Google ve Facebook gibi birleşik kimlik sağlayıcılar tarafından oluşturulur. Bu jetonlar farklı biçimlerde olabilir ancak genellikle OAuth 2.0 erişimidir jeton. Uygulamalar, kullanıcıların bu jetonları kullanarak kimlik sağlayıcıyla doğrulanır ve ardından bunları şuna dönüştürür: Firebase hizmetleri tarafından kullanılabilen kimlik bilgileri.
Firebase özel jeton Kullanıcıların bir uygulamada oturum açabilmesi için özel kimlik doğrulama sisteminiz tarafından oluşturulur bunu yapabilirsiniz. Özel jetonlar JWT'lerdir bir hizmet hesabının özel anahtarı kullanılarak imzalanması. Uygulamalar bu jetonları, eskiden döndürülen jetonları kullandıkları gibi kullanırlar. birleşik kimlik sağlayıcılardır.

Doğrulanmış e-posta adresleri

Firebase, şu iki koşulu karşılıyorsa e-posta adresini doğrulanmış olarak kabul eder:

  1. Kullanıcı Firebase doğrulama akışını tamamlar
  2. E-posta, güvenilir bir kimlik sağlayıcı (kısaca IdP) tarafından doğrulanır.

E-posta adresini bir kez doğrulayan, ancak daha sonra kullanıcıların yeniden doğrulama gerektirmeden e-posta adreslerini değiştirmesine izin veren IdP'ler güvenilir değildir. Alanın sahibi olan veya her zaman doğrulama gerektiren IdP'ler güvenilir olarak kabul edilir.

Güvenilir sağlayıcılar:

  • Google (@gmail.com adresleri için)
  • Yahoo (@yahoo.com adresleri için)
  • Microsoft (@outlook.com ve @hotmail.com adresleri için)
  • Apple (hesaplar her zaman doğrulandığı ve çok öğeli kimlik doğrulaması yapıldığından her zaman doğrulanır.)

Güvenilmeyen sağlayıcılar:

  • Facebook
  • Twitter
  • GitHub
  • Söz konusu Kimlik Sağlayıcı tarafından verilmemiş alanlar için Google, Yahoo ve Microsoft
  • E-posta doğrulaması yapılmadan E-posta / Şifre

Bazı durumlarda, bir kullanıcı aynı e-posta adresini kullanarak farklı sağlayıcılarda oturum açtığında Firebase otomatik olarak hesapları bağlar. Ancak bu, yalnızca belirli ölçütler karşılandığında ortaya çıkar. Bunun nedenini anlamak için şu durumu göz önünde bulundurun: bir kullanıcı, bir @gmail.com hesabıyla Google'ı kullanarak oturum açar ve kötü niyetli bir kişi aynı @gmail.com adresini kullanarak ancak Facebook aracılığıyla oturum açar. Bu iki hesap otomatik olarak birbirine bağlandıysa kötü niyetli kişi, kullanıcının hesabına erişim elde eder.

Aşağıdaki durumlarda, hesapları otomatik olarak ne zaman bağladığımız ve ne zaman kullanıcı veya geliştiricinin işlem yapmasını gerektiren bir hata aldığımız açıklanmaktadır:

  • Kullanıcı, güvenilmeyen bir sağlayıcıyla oturum açar, ardından aynı e-posta adresiyle (örneğin, Facebook ve GitHub) güvenilmeyen başka bir sağlayıcıda oturum açar. Bu durum, hesap bağlamayı gerektiren bir hataya neden olur.
  • Kullanıcı güvenilir bir sağlayıcıyla oturum açar, ardından aynı e-posta adresiyle (örneğin, Google'ın ardından Facebook) güvenilmeyen sağlayıcıda oturum açar. Bu durum, hesap bağlamayı gerektiren bir hataya neden olur.
  • Kullanıcı, güvenilmeyen bir sağlayıcıyla oturum açar, ardından aynı e-posta adresiyle güvenilir bir sağlayıcıda oturum açar (örneğin, Facebook ve ardından Google). Güvenilir sağlayıcı, güvenilmeyen sağlayıcının üzerine yazar. Kullanıcı Facebook ile tekrar oturum açmayı denerse hesap bağlamayı gerektiren bir hata oluşur.
  • Kullanıcı güvenilir bir sağlayıcıyla oturum açar, ardından aynı e-posta adresiyle farklı bir güvenilir sağlayıcıyla (örneğin, Apple ve ardından Google) oturum açar. İki sağlayıcı da hatasız bir şekilde bağlanır.

Admin SDK'yı kullanarak bir e-posta adresini manuel olarak doğrulanmış olarak ayarlayabilirsiniz. Ancak, bunu yalnızca kullanıcının e-posta adresinin gerçekten sahibi olduğundan eminseniz yapmanızı öneririz.