Javascript 节点Acl动态链接
我正在尝试使用npm模块Acl来实现Acl系统。可在此处找到主页: 文档中显示了许多非常简单的示例,用于提供角色访问权限。特别是,这里有一段很好的代码:Javascript 节点Acl动态链接,javascript,node.js,acl,Javascript,Node.js,Acl,我正在尝试使用npm模块Acl来实现Acl系统。可在此处找到主页: 文档中显示了许多非常简单的示例,用于提供角色访问权限。特别是,这里有一段很好的代码: acl.allow([ { roles:['guest','member'], allows:[ {resources:'blogs', permissions:'get'}, {resources:['forums','news'], permissio
acl.allow([
{
roles:['guest','member'],
allows:[
{resources:'blogs', permissions:'get'},
{resources:['forums','news'], permissions:['get','put','delete']}
]
},
{
roles:['gold','silver'],
allows:[
{resources:'cash', permissions:['sell','exchange']},
{resources:['account','deposit'], permissions:['put','delete']}
]
}
])
不幸的是,这些文档没有显示任何像“/blogs/:id/today”这样更复杂的url示例。是否可以为这些类型的动态URL设置ACL
而且,我还需要指定只有某些用户才能获得自己的信息。这意味着“users/:id”只有在用户的id与url的id相同时才有效。这可能吗?他们的文档确实涵盖了这一点,除非我遗漏了什么。摘自自述: 中间件接受3个可选参数,这些参数在某些情况下很有用 情况。例如,有时我们不能将整个URL视为 资源:
app.put('/blogs/:id/comments/:commentId', acl.middleware(3), function(req, res, next){…}
在这种情况下,资源将只是
url(不带结尾斜杠)
还可以添加自定义用户ID或检查其他用户ID
与方法不同的权限:
app.put('/blogs/:id/comments/:commentId', acl.middleware(3, 'joed', 'post'), function(req, res, next){…}
尽管文档确实说节点acl支持这里的动态URL。但是在查看源代码后,我们没有发现任何支持访问动态URL的引用 这里还有一个公开的github问题,指出了同样的问题 虽然我们可以实现自己的中间件过滤器来支持动态URL,但我想应该在节点acl库本身中修复它 结论:-节点ACL库不支持带有参数的URL(即动态URL)。
但是,如果我们仍然希望将节点ACL库用于动态URL,则可以使用来自的建议。因此,本部分介绍了在检查给定用户时如何更改中间件。但是,我正试图找出如何让joed的角色允许“/blogs/:id”。我不清楚第一个月joed的角色是如何设置的place@Paul,@ritmatter我们可以授权像
'blogs/:id'这样的URL吗,“blogs/:id/details/:commentID”
这两个博客对不同用户的授权级别都不同?鉴于这个问题已经提出了近6年,而您提出的问题在原始查询中没有涉及,@ChaitanyaBabar您可能想打开一个新的question@Paul当然,我想我需要打开新的。如果您只让我知道是否可以使用节点acl处理给定url的上述情况,那就太好了?