如何使用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 显示。