首页 > 解决方案 > 一个数据库的多个站点和身份验证

问题描述

这可能是一个简单的问题,但这是我第一次以这种方式建立网站,我需要一些建议。

设置:

问题:

问题:

标签: securityexpressnginxarangodb

解决方案


这取决于您的授权框架。

身份验证识别谁正在访问您的站点,并且该身份的一部分是用户、公司/域以及他们所属的角色/组。

授权是对允许该用户、公司/域或角色/组访问的内容的描述。

您可能知道用于用户识别的 cookie 和用户名/密码。用户存储在数据库中并映射到他们所属的公司/域。并且用户也被映射到他们所属的角色/组。

select userID, company from users where username = ?, $username

select group from groups where userID = ?, $userID

数据库中的某些记录可能仅限于单个域/公司,而其他记录可能仅限于角色/组。您将域/公司或角色/组添加为数据库中的列,并在查询中使用它。

select content from companyPages where company = ?

或者

select content from groupPages where group in (select group from groups where userID = ?))

您也可以让来自多个公司/域的用户使用相同的组。

并将其放在一起:

Select content from pages WHERE group in (select group from groups where userID= ?) AND company = (select company from users where userID=?);

基本上,您必须定义您的授权方案并将其映射到您的数据模型。


推荐阅读