根据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模式bash
身份验证,返回具体user或者anonymous,接下来咱们把这一步返回的user都做为正常usercode
验证请求权限,即上述验证请求权限映射中间件
验证资源存在性与所属权, 这里存在争议.资源
若是放到控制器以前, 那么可能会出现格外数据库查询,同时会增长代码上的复杂性, 可是能够把全部鉴权过程放到一块儿.开发
若是放到控制器中,鉴权过程分开了,因为不一样的资源可能有不一样的所属权判断标准,这样能够增长灵活性.权限控制
资源存在性与所属权放到控制器里仍是做为中间件放到控制器以前?class
请求权限映射有哪些须要改进的地方?date
可否将整个认证鉴权流程规范化?