Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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
如何将ACL节点js角色与数据库MySQL(sequelize)中的用户连接_Mysql_Node.js_Sequelize.js_Acl_Node Acl - Fatal编程技术网

如何将ACL节点js角色与数据库MySQL(sequelize)中的用户连接

如何将ACL节点js角色与数据库MySQL(sequelize)中的用户连接,mysql,node.js,sequelize.js,acl,node-acl,Mysql,Node.js,Sequelize.js,Acl,Node Acl,我已经用Sequelize创建了MySQL数据库。现在,我想使用节点acl为数据库中的用户提供角色。 这是我的acl.js文件: var acl = require('acl'); var aclSeq = require('acl-sequelize'); var sequelize = require('../models/index.js'); //acl acl = new acl(new aclSeq(sequelize.connection, { prefix: 'acl_' })

我已经用Sequelize创建了MySQL数据库。现在,我想使用节点acl为数据库中的用户提供角色。 这是我的acl.js文件:

var acl = require('acl');
var aclSeq = require('acl-sequelize');
var sequelize = require('../models/index.js');

//acl
acl = new acl(new aclSeq(sequelize.connection, { prefix: 'acl_' })); 

acl.addUserRoles(4, 'admin');

acl.allow('admin', 'ourdogs', 'view')

module.exports = acl;
问题是它创建了新的数据库acl_角色和acl_用户,但我想连接现有数据库“user”中的用户

然后调用这个方法,这个方法只允许管理员使用

  app.get('/ourdogs', acl.middleware(), function(req, res) {
    models.Dog.findAll().then(function(dogs) {
      res.render('ourdogs/ourdogs', { 
        title: 'Our dogs', 
        dogs: dogs 
      });
    })
  });
通过运行此代码,ACL将创建这些数据库

“acl_角色”

“acl_用户”

我知道acl.js中的代码不正确,但我不知道如何将数据库中的用户连接起来,然后用acl添加他们的角色。我在查看文档,但找不到任何关于此的信息


谢谢你的帮助

ACL不处理身份验证。ACL中间件执行如下检查:

acl.isAllowed(req.session.userId, '/ourdogs', 'get')
要使其工作,您必须已经填充了req.session.userId。它将检查req.method的权限,因此您也必须分配此权限

key, value (columns)
admin, [4]
key, value (columns)
4, ["admin"]
acl.isAllowed(req.session.userId, '/ourdogs', 'get')