当前位置: 首页 > 后端技术 > Node.js

一个新的RESTful权限设计讨论

时间:2023-04-03 16:53:22 Node.js

请求权限映射根据相关RESTful风格规范,我们将请求映射成如下操作GET/users/----->`list.users`GET/users/:id/----->`retrieve.users`POST/users/----->`create.users`PUT/users/:id/password/----->`replace.users`PATCH/users/:id/----->`update.users`DELETE/users/:id/----->`destroy.users`权限控制器映射如果后台是MVC模式开发,那么我们可以映射如下控制器`list.users`----->list(users)`retrieve.users`----->retrieve(user,id)`create.users`----->create(users)`replace.users`----->replace(users,id,field)`update.users`----->update(users,id)`destroy.users`----->destroy(users,id)认证过程权限的管理采用传统的RBAC方式认证返回的是特定用户或者匿名,那么我们将这一步返回的用户作为普通用户来验证请求权限,即上述验证请求权限映射了验证资源的存在与归属,这里是有争议的。如果放在controller之前,可能会有额外的数据库查询,会增加代码的复杂度,但是可以把所有的认证过程放在一起。如果放在controller中,认证过程是分开的,因为不同的资源可能有不同的归属判断标准,可以增加灵活性。讨论要点资源存在和所有权放在控制器中在控制器中或之前作为中间件?请求权限映射可以改进什么?整个认证流程能否标准化?