Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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
Node.js 如何定义节点acl公共可访问资源_Node.js_Express_Node Acl - Fatal编程技术网

Node.js 如何定义节点acl公共可访问资源

Node.js 如何定义节点acl公共可访问资源,node.js,express,node-acl,Node.js,Express,Node Acl,伙计们,我和我的前交叉韧带很难相处 我有阿德德 acl.allow('guest',['/docs/'],['show']); app.use(acl.middleware); 但它显示用户未经授权。访问时 acl.addUserRoles('api_user', 'business',function(err) { if(!err) { log.debug("api_user with business role created"); } }); acl.addUse

伙计们,我和我的前交叉韧带很难相处

我有阿德德

acl.allow('guest',['/docs/'],['show']);

app.use(acl.middleware);
但它显示用户未经授权。访问时

acl.addUserRoles('api_user', 'business',function(err) {

  if(!err) {
    log.debug("api_user with business role created");
  }
});


acl.addUserRoles('helpdesk', 'helpdesk',function(err) {

  if(!err) {
    log.debug("helpdesk with helpdesk role created");
  }
});

acl.userRoles( 'admin', function(err, roles) {
log.debug(roles);
});

acl.roleUsers( 'business', function(err, users){

  log.debug(users);
});

acl.hasRole( 'admin', 'business', function(err, hasRole) {
log.debug("admin user hasRole business =>"+hasRole);
});

acl.allow('admin', ['/api/hellobill/v1/hello'], ['get'], function(err) {
  console.log("EROOR"+err);
});

acl.allow([
        {
            roles: ['guest'],
            allows: [
                { resources: '/docs/', permissions: 'get' }
            ],
        }
    ]);


acl.allow('guest', '/docs/', ['get','put', 'delete']);


app.get('/docs/', acl.middleware(), function (req, res) {
        console.log(req);
    });

acl.allow('public', ['/', '/docs/', '/api-docs/'], 'view');

acl.whatResources('public',function(err,resources){
      console.log(resources);
 })

如果看不到代码的其余部分,我就无法确定,但我猜,所讨论的用户没有被授予“来宾”角色,或者当您访问该资源时,没有活动用户。据我所知,有了这个库,您必须显式地授予所引用的任何角色,角色名称中没有暗示行为的魔力

因此,在某个时候,您必须执行
acl.addUserRoles(用户,“guest”)
才能使其工作

如果您想要一个不受保护、真正公开的资源,那么我建议只在应该保护的路由上安装中间件,例如:

app.use('/private',acl.middleware())

/*更新*/

好的,那么是什么用户试图访问资源并得到错误信息


我不认为这有什么关系,但是你也不需要在你的资源中使用斜杠。所以你可以做
acl.allow('guest','docs',['get','put','delete'])

感谢您的编辑;我永远无法从我的iphone上正确设置格式。顺便说一句,我在使用swagger中间件吗?