Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点Acl动态链接_Javascript_Node.js_Acl - Fatal编程技术网

Javascript 节点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

我正在尝试使用npm模块Acl来实现Acl系统。可在此处找到主页:

文档中显示了许多非常简单的示例,用于提供角色访问权限。特别是,这里有一段很好的代码:

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的上述情况,那就太好了?