博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一种新的 RESTful 权限设计讨论
阅读量:6328 次
发布时间:2019-06-22

本文共 977 字,大约阅读时间需要 3 分钟。

请求权限映射

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

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

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

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

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

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

讨论点

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

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

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

转载地址:http://rnwoa.baihongyu.com/

你可能感兴趣的文章
bzoj千题计划323:bzoj1951: [Sdoi2010]古代猪文(Lucas+CRT+欧拉定理)
查看>>
Linux基础入门
查看>>
Jenkins performance插件生成性能测试报告【待完成】
查看>>
Maven学习总结
查看>>
补第二阶段冲刺站立会议5(原6月7日)
查看>>
Cookie application session
查看>>
MVC最佳实践
查看>>
【集成学习】sklearn中xgboot模块中fit函数参数详解(fit model for train data)
查看>>
【剑指offer】顺时针打印矩阵,C++实现
查看>>
【pandas】pandas.to_datatime()---时间格式转换
查看>>
LINUX 硬链接与软链接的区别
查看>>
Etcd和ZooKeeper,究竟谁在watch的功能表现更好?
查看>>
这个可以用于字库描边曲线处理,比bez简单多了
查看>>
Bzoj 2726 SDOI 任务安排
查看>>
PHP整理--MySQL--DOS命令操作数据库
查看>>
生成随机码
查看>>
zoj4020 Traffic Light(bfs+状态压缩)
查看>>
学习过程中的好文章集合
查看>>
阿花宝宝 Java基础笔记 之 流程控制(二)
查看>>
Web 2.0应用客户端性能问题十大根源
查看>>