Unity kullanarak Şifre Tabanlı Hesapları kullanarak Firebase ile kimlik doğrulama

KullanıcılarınızınFirebase Authentication kullanıcıların e-posta adreslerini ve şifrelerini kullanması ve uygulamanızın parola tabanlı hesaplar.

Başlamadan önce

Kullanmadan önce Firebase Authentication, Yapmanız gerekenler:

  • Unity projenizi kaydedin ve Firebase'i kullanacak şekilde yapılandırın.

    • Unity projeniz zaten Firebase kullanıyorsa kaydedilip yapılandırıldı.

    • Unity projeniz yoksa şunu indirebilirsiniz: örnek uygulama.

  • Firebase Unity SDK'sını (özellikle FirebaseAuth.unitypackage) şuraya ekleyin: derleyip toparlarsınız.

Firebase'i Unity projenize eklemenin hem Firebase konsolunda hem de açık Unity projenizde görevler içerdiğini unutmayın (örneğin, Firebase yapılandırma dosyalarını konsoldan indirip Unity projenize taşırsınız).

Firebase.Auth.FirebaseAuth sınıfına erişme

FirebaseAuth sınıfı, tüm API çağrılarının geçididir. FirebaseAuth.DefaultInstance üzerinden erişilebilir.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

Şifre tabanlı hesap oluşturma

Şifreyle yeni bir kullanıcı hesabı oluşturmak için aşağıdaki adımları uygulayın: uygulamanızın oturum açma kodu:

  1. Yeni bir kullanıcı, uygulamanızın kayıt formunu kullanarak kaydolduğunda, yeni kullanıcılar ve uygulamanızın gerektirdiği hesap doğrulama adımları (örneğin, Şifreniz doğru yazılmış ve sizin karmaşıklık düzeyinize uygun şekilde gereksinimlerini karşılayın.
  2. Yeni kullanıcının e-posta adresini ve şifresini ileterek yeni bir hesap oluşturma Hedef: FirebaseAuth.CreateUserWithEmailAndPassword:
    auth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("CreateUserWithEmailAndPasswordAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("CreateUserWithEmailAndPasswordAsync encountered an error: " + task.Exception);
        return;
      }
    
      // Firebase user has been created.
      Firebase.Auth.AuthResult result = task.Result;
      Debug.LogFormat("Firebase user created successfully: {0} ({1})",
          result.User.DisplayName, result.User.UserId);
    });

E-posta adresi ve şifreyle kullanıcının oturumunu açma

Kullanıcının şifreyle oturum açma adımları, yeni hesap oluşturma adımlarına benzer. Uygulamanızın oturum açma işlevinde şunları yapın:

  1. Bir kullanıcı uygulamanızda oturum açtığında kullanıcının e-posta adresini ve şifresini FirebaseAuth.SignInWithEmailAndPassword adresine iletin:
    auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithEmailAndPasswordAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithEmailAndPasswordAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.AuthResult result = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          result.User.DisplayName, result.User.UserId);
    });
  2. Ayrıca, diğer iş akışlarında olduğu gibi kimlik bilgisini oluşturup oturum açabilirsiniz:
    Firebase.Auth.Credential credential =
        Firebase.Auth.EmailAuthProvider.GetCredential(email, password);
    auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInAndRetrieveDataWithCredentialAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.AuthResult result = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          result.User.DisplayName, result.User.UserId);
    });

Önerilen: Şifre politikası ayarlayın

Şifre karmaşıklığı koşullarını zorunlu kılarak hesap güvenliğini artırabilirsiniz.

Projeniz için bir şifre politikası yapılandırmak üzere Firebase konsolunun Kimlik Doğrulama Ayarları sayfasında Şifre politikası sekmesini açın:

Kimlik Doğrulama Ayarları

Firebase Authentication şifre politikaları aşağıdaki şifre gereksinimlerini destekler:

  • Küçük harf karakter gerekli

  • Büyük harf karakter gerekli

  • Sayısal karakter gerekli

  • Alfanümerik olmayan karakter gerekli

    Aşağıdaki karakterler, alfanümerik olmayan karakter şartını karşılar: ^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~.

  • Minimum şifre uzunluğu (6 ila 30 karakter arasındadır; varsayılan olarak 6'dır)

  • Maksimum şifre uzunluğu (maksimum 4096 karakter)

Şifre politikası yaptırımını iki modda etkinleştirebilirsiniz:

  • Zorunlu kıl: Kullanıcı, politikanızla uyumlu bir şifreye geçiş yapana dek oturum açma girişimleri başarısız olur.

  • Bildir: Kullanıcıların politikanızla uyumlu olmayan şifrelerle oturum açmasına izin verilir. Zaman kullanarak kullanıcı şifresinin mevcut şifreye uyup uymadığını kontrol tarafından gerçekleştirilen bir politika izlemesi ve kullanıcıdan şifresini kullanmayın.

Yeni kullanıcıların her zaman politikası.

Etkin kullanıcılarınız varsa şu koşulları karşılamadığı sürece zorunlu modu etkinleştirmemenizi öneririz: Amacı, şifreleri politikanıza uygun olmayan kullanıcıların erişimini engellemektir. Bunun yerine, kullanıcıların geçerli giriş bilgileriyle oturum açmalarına olanak tanıyan bildirim modunu kullanın. ve şifrenin karşılaması gereken koşullar konusunda onları bilgilendirmelisiniz.

Önerilen: E-posta numaralandırma korumasını etkinleştirin

E-posta adreslerini parametre olarak alan bazı Firebase Authentication yöntemleri e-posta adresinin kayıtlı olması gerekirken diğer e-posta adresinin kayıtlı olması gereken belirli hatalar (örneğin, e-posta adresi ve şifreyle oturum açarken) veya kayıtlı . Bu, kullanıcılara belirli çözümler önermek için yararlı olabilir ancak kötü niyetli kişiler tarafından kullanıcılarınızın kaydettiği e-posta adreslerini keşfetmek için de kötüye kullanılabilir.

Bu riski azaltmak için e-posta numaralandırma korumasını etkinleştirmenizi öneririz. projeniz için Google Cloud gcloud aracını kullanın. Bu etkinleştirildiğinde, özellik, Firebase Authentication ürününün hata bildirme davranışını değiştirir: Uygulamanızın daha kesin hatalara dayanmıyor.

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.FirebaseUser nesne:

    Firebase.Auth.FirebaseUser user = auth.CurrentUser;
    if (user != null) {
      string name = user.DisplayName;
      string email = user.Email;
      System.Uri photo_url = user.PhotoUrl;
      // 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 User.TokenAsync() instead.
      string uid = user.UserId;
    }
  • 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 SignOut():

auth.SignOut();