gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 19:35:34 34 4
gpt4 key购买 nike

我有使用 Sequelize 创建的 MySQL 数据库。现在我想使用 Node 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_roles 和 acl_users 但我想从现有数据库“用户”连接用户

id, username, email, password_digest, firstName, lastName, image, EmployeeId (columns)
'4', 'admin', 'admin@admin.com', 'a', 'Admin', NULL, 'http://interworldgems.com/client_login/admin/images/login_icon.png', NULL

然后调用此方法,该方法仅允许管理员使用

  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_角色”

key, value (columns)
admin, [4]

“acl_users”

key, value (columns)
4, ["admin"]

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

感谢您的帮助!

最佳答案

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

acl.isAllowed(req.session.userId, '/ourdogs', 'get')

要使其正常工作,您必须已填充req.session.userId。它将检查 req.method 的权限,因此您也必须分配此权限。

关于mysql - 如何将 ACL Node js 角色与数据库 MySQL 中的用户连接(sequelize),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41573388/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com