gpt4 book ai didi

node.js - 如何管理 RESTful API 的权限

转载 作者:太空宇宙 更新时间:2023-11-04 03:09:27 25 4
gpt4 key购买 nike

我正在编写一个 MEAN.JS 多用户应用程序,某些操作必须受到限制,因此我试图找到“最佳实践”来管理我自己的 API 中的权限

我正在考虑为每个用户设置一系列权限,并且每个 API 都必须检查请求用户是否拥有所需的所有权限。

例如。

 GET /api/foo/:foo would need "foo-read"
POST /api/foo would need "foo-create"
PUT /api/foo/:foo would need "foo-update"
DELETE /api/foo/:foo would need "foo-delete"

GET /api/foo/:foo/bar:/bar would need "foo-read" and "bar-read"
POST /api/foo/bar would need "foo-create" and "bar-create"
PUT /api/foo/:foo/bar:/bar would need "foo-update" and "bar-update"
DELETE /api/foo/:foo/bar:/bar would need "foo-delete" and "bar-delete"

这样,用户可以拥有创建新用户的权限,但没有授予他们管理权限的权限。

我想知道这是否是最好的方法,或者是否有一些现有的中间件。

最佳答案

使用授权框架。我用cansecurity (全面披露:我是原作者)。它支持使用编程中间件和声明格式。

我会为此使用声明式,因为我喜欢保持 server.js 干净,并将所有安全配置放在一个地方:

{
"routes": [
// [verb,path,default,[test params,] test condition]
["GET","/api/foo/:foo","item.roles.foo_read === true"],
["PUT","/api/foo/:foo","item.roles.foo_update === true"]
]
}

关于node.js - 如何管理 RESTful API 的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27676147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com