首页 > 解决方案 > 具有express框架的nodejs中的acl权限

问题描述

我正在使用 express 框架开发 nodejs。

我想用 express framwork 在 nodejs 中创建 acl 权限。我正在尝试使用acl 包

server.js 文件:-

要求 acl 包和数据库使用该语法连接。

const node_acl = require('acl');
var database = mongodb://localhost:27017/society_managment
let acl = null;

mongodb.connect(database, (error, db) => {
    if (error) {
        throw error;
    }
   acl = new node_acl.mongodbBackend(db, '_acl');
});

route.js 文件:-

 var acl = require('acl');
 acl = new acl(new acl.memoryBackend());
 acl.allow([
{
    roles:['Admin'],
    allows:[
    {resources:'/admin/chairman', permissions:'*'},
    ]
}
]);
 module.exports=function(app,req){

 app.route('/admin/chairman')
.get(acl.middleware() , chairman.ChairmanList);

 }

访问资源的权限不足显示此错误

我如何在我的代码中使用 acl.middleware() 任何错误

请帮助我,谢谢,

标签: node.jsmongodbexpressacl

解决方案


我遇到了同样的问题。我尝试过这种方式来解决该问题。

      var acl = require('acl');
      acl = new acl(new acl.memoryBackend());
      acl.allow([
        {
           roles:['Admin'],
           allows:[
             {resources:'/admin/chairman', permissions:'*'},
           ]
         }
       ]);
        acl.addUserRoles('joe', 'Admin') //joe username who loggedIn           
        const isAuthenticated = (req, res, next) => {
          if (req.isAuthenticated()) {
              next()
          }
          res.redirect('login')
        }
        app.get('/api/users', [isAuthenticated, acl.middleware()], (req, res) => {
            res.render(__dirname + '/views/user.ejs');
        });

推荐阅读