当授权从REST端点访问资源时,我是否需要验证整个路径的授权和所有权,还是只需要验证所请求的最终资源?即。
/公司/ 12 /雇员/ 209 /帖/ 5
所以被访问的资源是#5后,所以如果发出请求的人有权访问#5,我是否需要验证员工209是帖子#5的作者,以及员工是否属于公司#12 ?如果要验证整个URL路径,这似乎会很快失控。
答案 0 :(得分:1)
对于API,特定帖子由URL标识,而不是URL末尾的数字。您的API应将这些视为两个不同的东西:
/companies
如果你的后端从它们中获取语义含义就没关系了,但你绝对不应该说“好吧,这最后一部分是该帖子的唯一ID,所以我只是忽略其余的URL” 。使用像你这样的嵌套结构的大多数人都允许使用id为5的多个帖子,每个公司的每个员工都有一个。
对您的API一无所知,该示例看起来非常像它应该是三个单独的顶级端点,每个端点分别用于/employees
,/posts
和{{1}}。尽可能减少层次结构。