我必须建立一个授权模块,允许用户使用一些功能。在node中,我使用express和mysql以及sequelize作为orm。我没有角色,但只有mysql db中的users表和permissions表:
用户示例(js版本)
users = [
{ userid: "1",
username: "arthur",
password: "excalibur"
},
{ userid: "2",
username: "merlin",
password: "occhetipoccheti"
},
{ userid: "1",
username: "morgana",
password: "imnotevil"
}]
权限
permissions = [
{ permissionid: "1",
action: "create",
description: "create a file"
},
{ permissionid: "2",
action: "read",
description: "reada file"
},
{ permissionid: "3",
action: "delete",
description: "delete a file"
},
{ permissionid: "4",
action: "update",
description: "update a file"
}]
我的目的是创建一个模块,并将其用作express中间件。我缺乏这项工作的设计模式(我是一个前端开发人员),我尝试了很多npm包(accesscontrol、acl、connect roles等),但现在我想创建自己的代码,因为我不需要基于角色的授权,而是通过匹配用户和权限ID的第三个表进行简单检查:
用户\u权限
users_permissions = [
{ userid: "1",
permissionid: "3"
},
{ userid: "1",
permissionid: "2"
},
{ userid: "2",
permissionid: "1"
},
{ userid: "3",
permissionid: "1"
},
{ userid: "3",
permissionid: "3"
},]
我读过一些类似的主题:node js和访问控制,使用express在node js中管理用户,mongodb作为服务器数据库
但其中很多都是专注于角色,我不需要角色。。。我该怎么办?有人能帮我提供一个教程链接吗?我想知道在node中设计模块的最佳方法。
基本上我想建立的功能是
示例module.can
can(userId, permissionid) {
users_permissions.forEach(element => {
if (userId == element.userid) {
if (element.permissionid == permissionid) {
console.log('true');
}
}
});
}
谢谢你的夸奖
暂无答案!
目前还没有任何答案,快来回答吧!