资讯专栏INFORMATION COLUMN

一种新的 RESTful 权限设计讨论

Zack / 2057人阅读

摘要:请求权限映射根据的相关风格规范我们将请求映射为以下几种操作权限控制器映射如果后端以模式进行开发那么我们可以映射如下控制器

请求权限映射

根据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模式

身份验证,返回具体user或者anonymous,接下来我们把这一步返回的user都作为正常user

验证请求权限,即上述验证请求权限映射

验证资源存在性与所属权, 这里存在争议.

如果放到控制器之前, 那么可能会出现格外数据库查询,同时会增加代码上的复杂性, 但是可以把所有鉴权过程放到一起.

如果放到控制器中,鉴权过程分开了,由于不同的资源可能有不同的所属权判断标准,这样可以增加灵活性.

讨论点

资源存在性与所属权放到控制器里还是作为中间件放到控制器之前?

请求权限映射有哪些需要改进的地方?

能否将整个认证鉴权流程规范化?

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38595.html

相关文章

  • 详解REST架构风格

    摘要:但是远远不仅是指的风格,它是一种网络应用的架构风格。参考用定位资源在架构风格中,用来指定一个资源。完整状态码列表如何设计在过去不使用架构风格的时候,如果我们要设计一个系统,会以操作为出发点,然后围绕它去建设其他需要的东西。 引言 作为Web开发者,你可能或多或少了解一些REST的知识,甚至已经非常习惯于它,以至于在正式地学习REST的时候,你可能心里会想:本来就是这样做的啊,不然还能怎...

    ChanceWong 评论0 收藏0
  • 阿里云前端周刊 - 第 29 期

    摘要:前端魔法堂异常不仅仅是在学习时我们会被告知异常和错误是不一样的,异常是不会导致进程终止从而可以被修复,但错误将会导致进程终止因此不能被修复。 推荐 1. RESTful API 设计最佳实践 https://blog.philipphauer.de/... 项目资源的URL应该如何设计?用名词复数还是用名词单数?一个资源需要多少个URL?用哪种HTTP方法来创建一个新的资源?可选参数应...

    Jaden 评论0 收藏0
  • 基于RESTful API 怎么设计用户权限控制?

    摘要:原文链接基于怎么设计用户权限控制前言有人说,每个人都是平等的也有人说,人生来就是不平等的在人类社会中,并没有绝对的公平,一件事,并不是所有人都能去做一样物,并不是所有人都能够拥有。 原文链接:BlueSun | 基于RESTful API 怎么设计用户权限控制? 前言 有人说,每个人都是平等的;也有人说,人生来就是不平等的;在人类社会中,并没有绝对的公平,一件事,并不是所有人都能去做;...

    sumory 评论0 收藏0
  • 基于RESTful API 怎么设计用户权限控制?

    摘要:原文链接基于怎么设计用户权限控制前言有人说,每个人都是平等的也有人说,人生来就是不平等的在人类社会中,并没有绝对的公平,一件事,并不是所有人都能去做一样物,并不是所有人都能够拥有。 原文链接:BlueSun | 基于RESTful API 怎么设计用户权限控制? 前言 有人说,每个人都是平等的;也有人说,人生来就是不平等的;在人类社会中,并没有绝对的公平,一件事,并不是所有人都能去做;...

    X1nFLY 评论0 收藏0

发表评论

0条评论

Zack

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<