【问题标题】:Different set of authentications for different apps in the same firebase project同一firebase项目中不同应用的不同身份验证集
【发布时间】:2020-07-31 20:20:07
【问题描述】:

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

  1. 客户端是一个应用程序。
  2. 业务端,即网站。

我对两者都使用相同的 Firestore 数据库,并且还使用相同的 Firebase 身份验证项目。

所以我需要两套身份验证集,一套用于客户端,另一套用于业务端。

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

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

【问题讨论】:

    标签: firebase firebase-authentication


    【解决方案1】:

    使用 Firebase 对用户进行身份验证并不能确定该用户是否有权访问任何特定于应用的内容。身份验证只是用户证明他们是谁的一种方法。

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

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

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

    另一种方法是在 Firebase 身份验证中为每个用户个人资料提供自定义声明,以确定他们是客户和/或企业。在这种情况下,您需要将服务器端代码发送到 set the custom isCustomer and/or isBusiness claims,并在您的代码(和数据库)中使用它来授予或拒绝访问权限。

    另见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-03
      • 2021-01-15
      相关资源
      最近更新 更多