如何将用户重定向到其组织的网页

时间:2018-06-21 00:35:53

标签: reactjs firebase react-router firebase-authentication firebase-security

我正在使用Firebase进行用户身份验证。

假设我有几个使用应用程序的组织,每个组织都有自己的员工人数。我想知道将用户重定向到其组织的Web应用程序实例的最佳模式是什么。

我的数据库具有以下路径/表:

/OrganizationA/somedata
/organizationB/somedata
/organizationC/somedata

假设Alex属于组织A,他去mywebsite / login并输入了用户名和密码。我怎么能告诉我应该将他重定向到组织A?

我的直觉是我应该有一张桌子

/profiles/userId/somedata

这样,当用户成功登录时,我在此表中检查他有权访问的组织,然后再次将他重定向到该组织(假设他具有许可)。

但是,在非常有组织的情况下,我有一个雇员表,其中包含与该雇员有关的所有信息

/OrganizationA/employees/userId/userInfo

我想知道是否有更好的方法? 如前所述,我正在使用Firebase API来管理注册,登录,身份验证等。

提前谢谢!

2 个答案:

答案 0 :(得分:1)

由于您使用Firebase进行用户身份验证,因此您应该能够在Firebase本身中将用户的个人资料作为用户属性进行维护。

对于每个用户有资格访问的组织,他们可以在Firebase中维护一个相应的组织标识符作为用户属性。

例如用户X具有以下属性

  

organisation_keys:{OrganisationA,OrganisationB}

用户Y具有以下属性

  

organisation_keys:{OrganisationC}

一旦用户通过Firebase进行身份验证并转到您的Web应用程序,您就可以在应用程序中访问经过Firebase身份验证的用户的属性,并通过其拥有的属性找到他们所属的组织,并确定将用户重定向到何处。

>

更新

同时,您在问题中描述的解决方案也不错。您可以在表中维护用户的访问权限详细信息 在您自己的应用程序中。

如果您打算将来用其他联合身份验证提供程序替换Firebase身份验证,那么将用户配置文件保留在应用程序自己的表中可能更有意义。

答案 1 :(得分:1)

您不检查权限,请先阅读已登录用户的属性,然后使用该属性的值,例如organization: "red"window.location.path = "/red"

就您所说的Firebase安全规则而言,这些权限决定了Firebase是否允许读取或写入请求的数据。