同一个firebase项目中不同应用程序的不同身份验证集



我正在构建一个预订系统,并使用firebase作为后端。该系统由两部分组成:

  1. 客户端,它是一个应用程序
  2. 商业端是一个网站

我对两者使用相同的firestore数据库,也使用相同的Firebase身份验证项目。

因此,我需要两组身份验证集,一组用于客户端,另一组用于业务端。

我在一个firebase项目中添加了两个用于共享数据库的应用程序。我的问题是,用户不应该使用他们的凭据登录商业网络应用程序,反之亦然。

如何为每个应用程序创建两组身份验证详细信息?

使用Firebase对用户进行身份验证不会确定用户是否可以访问任何特定于应用程序的内容。身份验证只是用户证明自己身份的一种方法。

然后,您可以使用有关用户的这些信息来确定他们可以在您的应用程序中做什么,这一过程被称为授权。身份验证和授权是并行的,但仍然是单独的步骤。Firebase身份验证只负责身份验证部分。授权由您的应用程序决定。

场景的典型方法是,实际上每个用户只有一组凭据。如果同一用户需要访问应用程序和网站,他们可以使用相同的凭据登录。根据您对用户的了解,然后授予或拒绝他们访问权限。

大多数应用程序都有一个users集合,其中包含每个用户的用户配置文件文档(使用他们的UID作为密钥(。然后,在用户通过身份验证后,您的应用程序可以读取用户的个人资料文档,并读取例如名为isCustomerisBusiness的两个字段,以确定用户是否有权访问该应用程序/网站。您还可以使用数据库安全规则中的这些字段来授予/拒绝访问权限。

另一种选择是为Firebase身份验证中的每个用户配置文件提供一个自定义声明,以确定他们是客户和/或企业。在这种情况下,您需要服务器端代码来设置自定义isCustomer和/或isBusiness声明,并在代码(和数据库(中使用此声明来授予或拒绝访问。

另请参阅:

  • 如何在java中创建firebase管理员用户进行身份验证
  • 如何对两个不同的Flutter应用程序使用相同的Firebase Auth
  • 基于角色的授权与基于角色的访问控制颤振

相关内容

最新更新