我对设计模式有疑问。假设我在db中有restful api和两个表:
company
---------------
id
Name
Address
和
User
----------------
Id
Login
Password
CompanyId <-FK to company
假设公司1的用户已登录,并希望按ID获取用户数据,但指定的ID的公司ID与登录用户不同。
例如:
1)myapi.com/api/getuser/1 -> user id 1 has the same company as logged in user
2)myapi.com/api/getuser/2 -> user id 2 has different company as logged in user (should be unaccessible for logged in user)
当然上面的例子很简单,我询问更复杂(一般)的情况,其中许多表是级联关系。
您对上述问题有经验吗?
答案 0 :(得分:0)
这称为租赁。委托人A仅允许查看公司A中其他用户的数据。委托人A不应该能够看到公司B的用户数据,而委托人B不能查看公司A中用户的数据。当您有安全规则时这需要强制执行,您正在处理多租户系统。
当您调用“级联关系中的多个表”时,其他每组数据都应该可以追溯到租期。您需要弄清楚租赁是什么,以及委托方授权的公司/公司。如果它们不匹配,您的API应返回403 Forbidden响应。