Rumah >hujung hadapan web >tutorial js >Firebase Auth vs Manual Auth: Perjalanan Pembangun &#

Firebase Auth vs Manual Auth: Perjalanan Pembangun &#

Susan Sarandon
Susan Sarandonasal
2025-01-28 06:34:11773semak imbas

Firebase Auth vs Manual Auth: A Developer

Membangunkan platform e-dagang baru, menggabungkan ciri Stockx dan eBay, menyampaikan lengkung pembelajaran yang curam. Projek utama pertama saya, pada mulanya saya bertujuan untuk penyelesaian yang benar-benar tersuai, termasuk pengesahan. Walau bagaimanapun, keputusan ini menekankan kelebihan penting Firebase Auth atas pengesahan manual.

Pengesahan Manual: Percubaan Awal

Pendekatan awal saya melibatkan sistem pengesahan manual, di samping Firebase untuk penyimpanan data. Prosesnya ialah:

  1. pendaftaran: Kumpulkan data pengguna, menghasilkan JWT (token web JSON), dan simpan butiran pengguna di Firebase.
  2. Login: Sahkan kelayakan terhadap pangkalan data Firebase, mengesahkan menggunakan JWT, dan mengalihkan ke laman utama.
Pelaksanaan awal ini, yang ditunjukkan di bawah, seolah -olah mudah:

<code class="language-javascript">const submitFormData = async (path, data) => {
  // Store JWT token
  localStorage.setItem("token", responseData.data.token);

  console.log("Redirecting to home page");
  location.replace("/");
};

subBtn.addEventListener("click", () => {
  // Form validation
  if (!tac.checked) {
    showAlert("you must agree to our terms and conditions");
  } else {
    loader.style.display = "block";
    submitFormData("/signup", {
      name: name.value,
      email: email.value,
      password: password.value,
      number: number.value,
      tac: tac.checked,
      notification: notification.checked,
      seller: false
    });
  }
});</code>

The Roadblock

Masalah timbul apabila mengambil data pengguna dari Firebase. Objek pengguna secara konsisten kembali

. Jam debugging mendedahkan batasan pendekatan manual saya. Firebase Auth menyediakan penyelesaian yang jauh lebih elegan. null

Penyelesaian Auth Firebase: Pendekatan yang diselaraskan

Beralih ke Firebase Auth secara dramatik mempermudahkan proses. Pelaksanaan yang disemak semula:

pendaftaran

<code class="language-javascript">const auth = getAuth();

createUserWithEmailAndPassword(auth, email.value, password.value)
  .then((userCredential) => {
    const user = userCredential.user;
    loader.style.display = "block";
    return submitFormData("/signup", {
      name: name.value,
      email: email.value,
      password: password.value,
      number: number.value,
      tac: tac.checked,
      notification: notification.checked,
      seller: false
    });
  })
  .catch((error) => {
    showAlert(error.message);
  });</code>
Login

<code class="language-javascript">signInWithEmailAndPassword(auth, email.value, password.value)
  .then((userCredential) => {
    const user = userCredential.user;
    loader.style.display = "block";
    return submitFormData("/login", {
      email: email.value,
      password: password.value
    });
  })
  .catch((error) => {
    showAlert(error.message);
  });</code>

Penambahbaikan utama:

  1. Persediaan yang dipermudahkan: Mengendalikan konfigurasi keselamatan kompleks. getAuth()
  2. Pengurusan Pengguna yang mantap: dan createUserWithEmailAndPassword() menguruskan pengesahan e -mel, keselamatan kata laluan, penciptaan pengguna, dan pengurusan sesi secara automatik. signInWithEmailAndPassword()
Pelajaran yang dipelajari

Pengesahan bangunan dari awal adalah pengalaman pembelajaran yang berharga, tetapi Firebase Auth menawarkan alternatif yang selamat, baik, dan menjimatkan masa. Integrasi lancarnya dengan ciri-ciri keselamatan Firestore dan terbina dalam tidak ternilai untuk aplikasi pengeluaran. Untuk perisian siap pengeluaran, memanfaatkan penyelesaian yang ditetapkan seperti Firebase Auth sangat disyorkan.

Atas ialah kandungan terperinci Firebase Auth vs Manual Auth: Perjalanan Pembangun &#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn