首頁 >web前端 >js教程 >Firebase Auth vs手冊Auth:開發人員&#S之旅

Firebase Auth vs手冊Auth:開發人員&#S之旅

Susan Sarandon
Susan Sarandon原創
2025-01-28 06:34:11715瀏覽

Firebase Auth vs Manual Auth: A Developer

開發一個新的電子商務平台,融合了Stockx和eBay功能,提出了陡峭的學習曲線。 我的第一個主要項目,我最初是針對完全定制的解決方案,包括身份驗證的。但是,這一決定強調了Firebase Auth比手動身份驗證的顯著優勢。

>

>手動身份驗證:初始嘗試

>

>我的初始方法涉及手動身份驗證系統,以及用於數據存儲的Firebase。該過程是:

  1. >註冊:>收集用戶數據,生成JWT(JSON Web令牌),然後將用戶詳細信息存儲在Firebase中。 >
  2. >
  3. 登錄:驗證憑證針對firebase數據庫,使用JWT進行身份驗證,然後重定向到主頁。 >
  4. 此初始實現(如下所示)似乎很簡單:>

障礙
<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>

從Firebase獲取用戶數據時出現問題。 用戶對象始終返回。 調試數小時揭示了我的手動方法的局限性。 Firebase auth提供了更優雅的解決方案。

>

nullfirebase auth解決方案:一種簡化的方法

> 切換到firebase auth極大地簡化了該過程。 修訂後的實現:

>註冊

登錄

<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>

密鑰改進:
<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>

簡化的設置:
  1. 處理複雜的安全配置。 getAuth()強大的用戶管理:
  2. >
  3. >管理電子郵件驗證,密碼安全,用戶創建和會話管理自動。 > createUserWithEmailAndPassword() signInWithEmailAndPassword()經驗教訓
從頭開始建造身份驗證是一種寶貴的學習體驗,但是Firebase Auth提供了一種安全,經過良好測試且節省時間的替代方案。 它與Firestore和內置安全功能的無縫集成對於生產應用程序非常寶貴。 對於準備生產的軟件,強烈建議使用諸如Firebase Auth之類的已建立解決方案。

以上是Firebase Auth vs手冊Auth:開發人員&#S之旅的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn