如何将ACL节点js角色与数据库MySQL(sequelize)中的用户连接
我已经用Sequelize创建了MySQL数据库。现在,我想使用节点acl为数据库中的用户提供角色。 这是我的acl.js文件:如何将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_' })
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')