如何使用Firebase身份驗證與多種登入方法和基於角色的身份驗證?
P粉574695215
2023-09-05 12:18:10
<p>我正在創建一個react.js應用程式作為nodejs作為後端,我想使用這些身份驗證方法使用電子郵件/密碼登錄,使用谷歌登錄並使用電話登錄,現在我想在用戶簽名時保持用戶的唯一性對於其中任何一個,我也會獲取其他詳細信息,例如當用戶使用電子郵件/密碼註冊時,那麼我還將獲取用戶電話號碼,並且我不希望用戶通過使用電話登錄來使用該電話號碼建立另一個帳戶方法。 </p>
<p>第二個問題是我的應用程式有 3 個使用者角色:使用者、銷售和管理員。每個用戶都有不同的註冊表單,當使用電子郵件的用戶註冊為銷售人員時,我也希望該用戶能夠使用相同的電子郵件註冊為用戶,現在當我在React 應用程式中使用firebase sdk 時,它會作為用戶拋出錯誤已經存在。 </p>
<p>Firebase 驗證可以解決此問題,我希望使用者是唯一的,並且我希望啟用基於角色的身份驗證。
我使用 firestore 作為我的資料庫</p>
如doc, "您可以透過將身分驗證提供者憑證連結到現有使用者帳戶,允許使用者使用多個驗證提供者登入您的應用程式。無論身分驗證如何,都可以透過相同的Firebase 使用者ID 來識別使用者他們用來登入的提供者」。另請參閱
linkWithCredential()
的文档a> 和linkWithPhoneNumber()
方法.您可以使用基於自訂聲明(您可以新增多個聲明,每個角色一個)或 Firestore 文件。但是,您將在您的應用程式中自行實現使用者選擇角色的機制(您在問題中提到「不同的註冊表單」)和對應的 GUI 顯示。