Javascript kullanarak Parola Tabanlı Hesapları kullanarak Firebase ile kimlik doğrulaması yapın

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Firebase Authentication'ı, kullanıcılarınızın e-posta adreslerini ve parolalarını kullanarak Firebase ile kimlik doğrulaması yapmasına izin vermek ve uygulamanızın parola tabanlı hesaplarını yönetmek için kullanabilirsiniz.

Sen başlamadan önce

  1. Firebase'i JavaScript projenize ekleyin .
  2. Uygulamanızı henüz Firebase projenize bağlamadıysanız, bunu Firebase konsolundan yapın.
  3. E-posta/Parola ile oturum açmayı etkinleştir:
    1. Firebase konsolunda Kimlik Doğrulama bölümünü açın.
    2. Oturum açma yöntemi sekmesinde, E- posta/parola oturum açma yöntemini etkinleştirin ve Kaydet'e tıklayın .

Parola tabanlı bir hesap oluşturun

Parola ile yeni bir kullanıcı hesabı oluşturmak için uygulamanızın kayıt sayfasında aşağıdaki adımları tamamlayın:

  1. Yeni bir kullanıcı, uygulamanızın kayıt formunu kullanarak kaydolduğunda, yeni hesabın parolasının doğru yazıldığını ve karmaşıklık gereksinimlerinizi karşıladığını doğrulamak gibi, uygulamanızın gerektirdiği tüm yeni hesap doğrulama adımlarını tamamlayın.
  2. Yeni kullanıcının e-posta adresini ve parolasını createUserWithEmailAndPassword ileterek yeni bir hesap oluşturun:

    Web version 9

    import { getAuth, createUserWithEmailAndPassword } from "firebase/auth";
    
    const auth = getAuth();
    createUserWithEmailAndPassword(auth, email, password)
      .then((userCredential) => {
        // Signed in 
        const user = userCredential.user;
        // ...
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ..
      });

    Web version 8

    firebase.auth().createUserWithEmailAndPassword(email, password)
      .then((userCredential) => {
        // Signed in 
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ..
      });
    Yeni hesap oluşturulduysa, kullanıcı otomatik olarak oturum açar. Oturum açan kullanıcı ayrıntılarını almak için aşağıdaki Sonraki adımlar bölümüne bakın.

    Burası aynı zamanda hataları yakalayıp işleyebileceğiniz yerdir. Hata kodlarının bir listesi için Kimlik Doğrulama Referans Dokümanlarına bakın.

Bir e-posta adresi ve şifre ile bir kullanıcı oturumu açın

Bir kullanıcıyı parola ile oturum açma adımları, yeni bir hesap oluşturma adımlarına benzer. Uygulamanızın oturum açma sayfasında aşağıdakileri yapın:

  1. Bir kullanıcı uygulamanızda oturum açtığında, signInWithEmailAndPassword için kullanıcının e-posta adresini ve şifresini iletin:

    Web version 9

    import { getAuth, signInWithEmailAndPassword } from "firebase/auth";
    
    const auth = getAuth();
    signInWithEmailAndPassword(auth, email, password)
      .then((userCredential) => {
        // Signed in 
        const user = userCredential.user;
        // ...
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
      });

    Web version 8

    firebase.auth().signInWithEmailAndPassword(email, password)
      .then((userCredential) => {
        // Signed in
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
      });
    Oturum açan kullanıcı ayrıntılarını almak için aşağıdaki Sonraki adımlar bölümüne bakın.

    Burası aynı zamanda hataları yakalayıp işleyebileceğiniz yerdir. Hata kodlarının bir listesi için Kimlik Doğrulama Referans Dokümanlarına bakın.

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

E-posta adreslerini parametre olarak alan bazı Firebase Kimlik Doğrulama yöntemleri, e-posta adresinin kaydedilmesi gerektiğinde (örneğin, bir e-posta adresi ve şifreyle oturum açarken) kayıtlı olmaması veya kullanılmaması gerektiğinde kaydedilmesi (örneğin, bir kullanıcının e-posta adresini değiştirirken). Bu, kullanıcılara belirli çareler önermek için yararlı olsa da, kullanıcılarınız tarafından kaydedilen e-posta adreslerini keşfetmek için kötü niyetli aktörler tarafından da kötüye kullanılabilir.

Bu riski azaltmak için Google Cloud gcloud aracını kullanarak projeniz için e-posta numaralandırma korumasını etkinleştirmenizi öneririz. Bu özelliğin etkinleştirilmesinin Firebase Authentication'ın hata raporlama davranışını değiştirdiğini unutmayın: uygulamanızın daha spesifik hatalara dayanmadığından emin olun.

Sonraki adımlar

Bir kullanıcı ilk kez oturum açtıktan sonra, yeni bir kullanıcı hesabı oluşturulur ve kullanıcının oturum açtığı kimlik bilgilerine (yani, kullanıcı adı ve parolası, telefon numarası veya kimlik doğrulama sağlayıcı bilgileri) bağlanır. Bu yeni hesap, Firebase projenizin bir parçası olarak saklanır ve kullanıcının nasıl oturum açtığına bakılmaksızın projenizdeki her uygulamada bir kullanıcıyı tanımlamak için kullanılabilir.

  • Uygulamalarınızda, kullanıcınızın kimlik doğrulama durumunu öğrenmenin önerilen yolu, Auth nesnesine bir gözlemci ayarlamaktır. Ardından, kullanıcının temel profil bilgilerini User nesnesinden alabilirsiniz. Bkz. Kullanıcıları Yönetin .

  • Firebase Gerçek Zamanlı Veritabanı ve Bulut Depolama Güvenlik Kurallarınızda , oturum açmış kullanıcının benzersiz kullanıcı kimliğini auth değişkeninden alabilir ve bunu, bir kullanıcının hangi verilere erişebileceğini kontrol etmek için kullanabilirsiniz.

Kimlik doğrulama sağlayıcı kimlik bilgilerini mevcut bir kullanıcı hesabına bağlayarak, kullanıcıların birden fazla kimlik doğrulama sağlayıcısı kullanarak uygulamanızda oturum açmasına izin verebilirsiniz.

Bir kullanıcının oturumunu kapatmak için signOut arayın:

Web version 9

import { getAuth, signOut } from "firebase/auth";

const auth = getAuth();
signOut(auth).then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});

Web version 8

firebase.auth().signOut().then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});