Catch up on everthing we announced at this year's Firebase Summit. Learn more

Firebase Projelerindeki Kullanıcılar

Firebase kullanıcı nesnesi projenizde bir uygulama için kaydolmuş bir kullanıcı hesabını temsil eder. Uygulamaların genellikle birçok kayıtlı kullanıcısı vardır ve bir projedeki her uygulama bir kullanıcı veritabanını paylaşır.

Kullanıcı örnekleri, Firebase Kimlik Doğrulama örneklerinden bağımsızdır, bu nedenle, aynı bağlamda farklı kullanıcılara birkaç referansınız olabilir ve yine de onların yöntemlerinden herhangi birini çağırabilirsiniz.

Kullanıcı özellikleri

Firebase kullanıcıların kullanıcı (tarafından güncellenebilir temel özellikler-benzersiz bir kimlik, bir birincil e-posta adresi, isim ve fotoğraf URL saklanan projenin kullanıcı veritabanında, sabit bir set var iOS , Android , web ). Kullanıcı nesnesine doğrudan başka özellikler ekleyemezsiniz; bunun yerine, ek özellikleri Google Cloud Firestore gibi diğer depolama hizmetlerinde depolayabilirsiniz.

Bir kullanıcı uygulamanıza ilk kez kaydolduğunda, kullanıcının profil verileri mevcut bilgiler kullanılarak doldurulur:

  • Kullanıcı bir e-posta adresi ve parola ile kaydolduysa yalnızca birincil e-posta adresi özelliği doldurulur
  • Kullanıcı, Google veya Facebook gibi bir birleşik kimlik sağlayıcısına kaydolduysa, sağlayıcı tarafından sağlanan hesap bilgileri, kullanıcının profilini doldurmak için kullanılır.
  • Kullanıcı özel auth sisteminize kaydolduysa, istediğiniz bilgileri kullanıcının profiline açıkça eklemeniz gerekir.

Bir kullanıcı hesabı oluşturulduktan sonra, kullanıcının başka bir cihazda yapmış olabileceği değişiklikleri dahil etmek için kullanıcı bilgilerini yeniden yükleyebilirsiniz.

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

Kullanıcıları birkaç yöntemle uygulamalarınızda oturum açabilirsiniz: e-posta adresi ve parola, birleşik kimlik sağlayıcıları ve özel kimlik doğrulama sisteminiz. Bir kullanıcıyla birden fazla oturum açma yöntemini ilişkilendirebilirsiniz: örneğin, bir kullanıcı bir e-posta adresi ve şifre kullanarak veya Google ile Oturum Açma özelliğini kullanarak aynı hesapta oturum açabilir.

Kullanıcı örnekleri, kullanıcıya bağlı her sağlayıcının kaydını tutar. Bu, bir sağlayıcı tarafından verilen bilgileri kullanarak boş profilin özelliklerini güncellemenize olanak tanır. Yönetme Kullanıcıları (Bkz iOS , Android , web ).

mevcut kullanıcı

Bir kullanıcı kaydolduğunda veya oturum açtığında, bu kullanıcı Auth örneğinin geçerli kullanıcısı olur. Örnek, kullanıcının durumunu korur, böylece sayfanın yenilenmesi (bir tarayıcıda) veya uygulamanın yeniden başlatılması, kullanıcının bilgilerini kaybetmez.

Kullanıcı oturumu kapattığında, Auth örneği, kullanıcı nesnesine bir referans tutmayı durdurur ve artık durumunu sürdürmez; mevcut kullanıcı yok. Ancak, kullanıcı örneği tamamen işlevsel olmaya devam eder: ona bir referans tutarsanız, yine de kullanıcının verilerine erişebilir ve bunları güncelleyebilirsiniz.

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

Auth örneğinin mevcut durumunu izlemenin önerilen yolu, dinleyicileri (JavaScript'te "gözlemciler" olarak da adlandırılır) kullanmaktır. Bir Yetkilendirme dinleyicisi, Yetkilendirme nesnesine ilgili bir şey olduğunda her zaman bilgilendirilir. Yönetme Kullanıcıları (Bkz iOS , Android , web ).

Bir Auth dinleyicisi aşağıdaki durumlarda bilgilendirilir:

  • Auth nesnesi başlatmayı tamamlar ve bir kullanıcı önceki bir oturumdan zaten oturum açmış veya bir kimlik sağlayıcının oturum açma akışından yeniden yönlendirilmiş
  • Bir kullanıcı oturum açar (geçerli kullanıcı belirlenir)
  • Bir kullanıcı oturumu kapatır (geçerli kullanıcı null olur)
  • Geçerli kullanıcının erişim belirteci yenilenir. Bu durum aşağıdaki koşullarda gerçekleşebilir:
    • Erişim belirtecinin süresi doluyor: bu yaygın bir durumdur. Yenileme belirteci, yeni bir geçerli belirteç kümesi almak için kullanılır.
    • Kullanıcı parolasını değiştirir: Firebase, yeni erişim ve yenileme belirteçleri verir ve eski belirteçlerin süresinin dolmasını sağlar. Bu, güvenlik nedenleriyle otomatik olarak kullanıcının belirtecinin süresinin dolmasına ve/veya her cihazda kullanıcının oturumunun kapatılmasına neden olur.
    • Kullanıcı yeniden kimlik doğrulaması yapar: bazı işlemler, kullanıcının kimlik bilgilerinin yakın zamanda verilmesini gerektirir; bu tür eylemler bir hesabı silmeyi, birincil e-posta adresini ayarlamayı ve bir parolayı değiştirmeyi içerir. Kullanıcının oturumunu kapatıp tekrar oturum açmak yerine, kullanıcıdan yeni kimlik bilgilerini alın ve yeni kimlik bilgilerini kullanıcı nesnesinin yeniden kimlik doğrulama yöntemine iletin.

Yetkilendirme belirteçleri

Firebase ile kimlik doğrulama gerçekleştirdiğinizde karşılaşabileceğiniz üç tür kimlik doğrulama belirteci vardır:

Firebase kimlik belirteçleri Bir kullanıcı bir uygulamada oturum açtığında Firebase tarafından oluşturulur. Bu belirteçler, bir Firebase projesinde bir kullanıcıyı güvenli bir şekilde tanımlayan imzalı JWT'lerdir. Bu belirteçler, kullanıcının Firebase projesine özgü kimlik dizesi de dahil olmak üzere bir kullanıcı için temel profil bilgilerini içerir. Çünkü kimlik jeton bütünlüğü doğrulanabilir , kullanıcı oturum açmış-şu anda belirlemek için bir arka uç sunucusuna gönderebilirsiniz.
Kimlik sağlayıcı jetonları Google ve Facebook gibi birleşik kimlik sağlayıcıları tarafından oluşturulur. Bu belirteçlerin farklı biçimleri olabilir, ancak genellikle OAuth 2.0 erişim belirteçleridir. Uygulamalar, kullanıcıların kimlik sağlayıcıyla başarılı bir şekilde kimlik doğrulaması yaptığını doğrulamak için bu belirteçleri kullanır ve ardından bunları Firebase hizmetleri tarafından kullanılabilen kimlik bilgilerine dönüştürür.
Firebase özel belirteçleri Kullanıcıların, yetkilendirme sisteminizi kullanarak bir uygulamada oturum açmasına izin vermek için özel yetkilendirme sisteminiz tarafından oluşturulur. Özel belirteçleri JWTS olan hizmet hesabının özel anahtar ile imzalanmış . Uygulamalar, bu belirteçleri, birleşik kimlik sağlayıcılarından döndürülen belirteçleri kullandıkları gibi kullanır.

Doğrulanmış e-posta adresleri

Firebase, iki koşulu karşılaması halinde bir e-postayı doğrulanmış olarak kabul eder: 1. Kullanıcı, Firebase doğrulama akışını tamamlar 2. E-posta, güvenilir bir Kimlik Sağlayıcı veya kısaca IdP tarafından doğrulanır.

E-postayı bir kez doğrulayan, ancak daha sonra kullanıcıların yeniden doğrulama gerektirmeden e-posta adreslerini değiştirmesine izin veren IdP'lere güvenilmez. 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 (her zaman doğrulanır, çünkü hesaplar her zaman doğrulanır ve çok faktörlü kimlik doğrulaması yapılır)

Güvenilmeyen sağlayıcılar:

  • Facebook
  • heyecan
  • GitHub
  • Bu Kimlik Sağlayıcı tarafından verilmeyen alanlar için Google, Yahoo ve Microsoft
  • E-posta doğrulaması olmadan E-posta / Şifre

Bazı durumlarda, bir kullanıcı aynı e-posta adresini kullanarak farklı sağlayıcılarda oturum açtığında Firebase hesapları otomatik olarak bağlar. Ancak bu, ancak belirli kriterler karşılandığında gerçekleşebilir. Nedenini anlamak için şu durumu göz önünde bulundurun: bir kullanıcı Google'ı bir @gmail.com hesabıyla oturum açar ve kötü niyetli bir aktör aynı @gmail.com adresini kullanarak bir hesap oluşturur, ancak Facebook üzerinden oturum açar. Bu iki hesap otomatik olarak bağlanırsa, kötü niyetli aktör, kullanıcının hesabına erişim elde ederdi.

Aşağıdaki durumlar, hesapları ne zaman otomatik olarak bağladığımızı ve ne zaman kullanıcı veya geliştirici eylemi gerektiren bir hata verdiğimizi açıklar:

  • Kullanıcı güvenilmeyen bir sağlayıcıyla oturum açar, ardından aynı e-postayla başka bir güvenilmeyen sağlayıcıyla oturum açar (örneğin, Facebook ve ardından GitHub). Bu, hesap bağlama gerektiren bir hata verir.
  • Kullanıcı güvenilir bir sağlayıcıyla oturum açar, ardından aynı e-postayla güvenilmeyen sağlayıcıyla oturum açar (örneğin, Google ve ardından Facebook). Bu, hesap bağlama gerektiren bir hata verir.
  • Kullanıcı güvenilmeyen bir sağlayıcıyla oturum açar, ardından aynı e-postayla güvenilir bir sağlayıcıyla 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çmaya çalışırsa, hesap bağlama gerektiren bir hataya neden olur.
  • Kullanıcı güvenilir bir sağlayıcıyla oturum açar, ardından aynı e-postayla farklı bir güvenilir sağlayıcıyla oturum açar (örneğin, Apple ve ardından Google). Her iki sağlayıcı da hatasız olarak bağlanacaktır.

Yönetici SDK'sını kullanarak bir e-postayı manuel olarak doğrulanmış olarak ayarlayabilirsiniz, ancak bunu yalnızca kullanıcının gerçekten e-postanın sahibi olduğunu biliyorsanız yapmanızı öneririz.