宝哥软件园

详细说明express在nodejs中构建的权限管理系统

编辑:宝哥软件园 来源:互联网 时间:2021-09-03

权限管理是管理系统中的一个常见组件。通常需要通过判断用户是否有添加、删除、修改查询的权限来定义资源并分配给用户。

初衷:

快递开发的大大小小的项目有20多个,之前的项目都是独立存在的。最近领导建议,把这些小项目整合成一个大平台,赋予各部门在一个平台上运营的权限。这样做的好处首先是便于项目管理,其次是节省开发成本。但是目前关于使用nodejs进行权限管理的数据似乎并不多,这里特意分享一下,仅供参考。

一开始在node_acl、Connect Roles、rbac的框架中徘徊,最终选择了node_acl的框架,但是node_acl只帮你做了一部分权限管理的工作,只保存了用户、角色、资源之间的关系,并没有保存用户、角色、资源本身。我们要做的就是完成用户、角色、资源的增删改,这是一个完整的权限管理系统。

预期效果:

超级管理员登录后,可以执行所有操作,看到所有菜单栏。普通用户登录后只有部分权限,只能看到部分菜单栏或操作按钮。

主要模块:

Express:节点框架express-hbs:模板引擎node_acl:权限管理系统核心mongodb:数据库帆-mongodb:引擎前端连接mongodb:

惊人的用户界面、角度、Z树

源代码地址:https://github.com/wuwanyu/aclDemo

经营场所:

安装mongodb数据库

奔跑

1.数据准备

(1)将源代码目录下的sql文件夹内容复制到mongodb安装目录的bin目录下;(2)通过命令行进入mongodb安装目录的bin目录,运行MongoRestore-d acltest acltest.dmp/acltest,将数据导入ACL test表

2.安装依赖包:npm安装

3.操作:npm启动

4.在浏览器中输入:http://localhost:3000(用户名/密码:admin/admin或user/123)

部分截图

界面文档

资源相关:

1.保存资源树2。获取资源列表

角色相关:

1.添加角色2。修改角色3。查询角色列表4。删除角色4。查询角色详细信息(包括角色的权限列表)

用户相关:

1.用户登录2。用户出口3。添加用户4。修改用户5。删除用户6。获取用户列表7。查询用户详细信息(包括用户权限列表)8。添加用户角色9。获取用户角色

资源

1.保存资源树(添加、修改和删除都是方法)

/api/acl_resource/addArray参数:{ list:JSON . stringify(nodelist)}返回值:{code:'200 ',msg: '已成功创建!'}2.获取资源列表

/api/acl_resource/getList哎哎哎:菲兰达:{ '代码: '200 ','消息' : '霍阿金结果' 3360[{ ' PID ' : ' 0 ','名称' : '魏冄拼音_ name': ' quanbu ',' create dat ' : ' 2017-05-26t 0933604936003.139 z ','更新于' 3: ' 2017-05-27t 0733361733366041.959 z ',{ 'pId': '1 ',' name ' 333366 '英文)拼音_名称' : '寿野',' create dat ' : ' 2017-05-26t 09336336 03.141 z ','更新于' 33: ' 2017-05-27t 073361733366041.961 z ',' id ' 3: ' 41 CD 1 DCE-66 C9-4 ACA-91 C2-9135 FBA 291 C3 ' },{ 'pId': '1 ','名称' : '华爷拼音_ name ' : ' jingshifang ',' create dat ' 3: ' 2017-05-26t 09336336 03.142 z ','更新于' 3: ' 2017-05-27t 07333617333660441.962 z ',' id ' 3: ' D2自6e 56-f005-43 cf-b109-af3 a吕惠卿(签名)“拼音_姓名‘:’京师方寿叶”、 create dat ' 3: ' 2017-05-26t 0933636003.142 z ","更新于' 3: ' 2017-05-27t 073336173366041.963 z "," id ' 3: ' 74a 7970 a-d53 e-494 B- 9671-4b 415 c 3469 ' },{ '你好拼音_ name ' : ' jinshifthishi ',' create dat ' 3: ' 2017-05-26t 0933604936003.143 z ','更新于' 33: ' 2017-05-27t 073336173366041.964 z ',' id ' 336360 ' 15862997-acef-43c 1-a1-1 8 e 6588 b ' },{ 'pId': '1 ', 名称3360绿筠拼音_名称' : '对樟丹',' create dat ' 3: ' 2017-05-26t 09333363346048.411 z ','更新于' 33: ' 2017-05-27t 073336173363441965 z ',' id ' 3: ' 78 aa 4788-f42f-42b 6-9db 1绿筠小姐拼音_名称' : '对掌丹厚液',' create dat ' 3: ' 2017-05-26t 09336336336363648648.412 z ','更新于' 333: ' 2017-05-27t 073336336336336363636041.966 z ',' id ' 3: ' c0f 68 fa 4-81 CD-4908-8005-97 c 88445 D7 B3 ' },{ ' PID ' : ' 78 aa 4788-f42f-42b 6-9db 1-e8ff 0 ad绿筠小姐拼音_ name ' 3330 ' duizhangdanguali ',' create dat ' 3: ' 2017-05-26t 093360 333648.412 z ','更新于' 33: ' 2017-05-27t 073233363441966 z ',' id ' 33: ' 5fe 3 e 266-5a 2a-47a 4-b309-ee 6 f1f范仲淹说拼音_ name ' : '西潼关里',' createdat ' 3: ' 2017-05-26t 093333363346348.413 z ','更新于' 3: ' 2017-05-27t 0733361733660441.966 z ',' id ' 3: ' FBE 848 C4-950 e-402d-92 C5-6fe 067 FD 1 BAC ' },{ ' PID ' : '何钟泰(音译)“拼音_姓名‘:’永虎冠利”、“create dat‘3:’2017-05-26t 0933333363648648.416 z”、“更新于‘3:’2017-05-27t 073336173363341967 z”、“id‘:’1 FD 06306-6539-1 : ' FBE 848 C4-950 e-402d-92 C5-6 Fe 067 FD 1 "贺盛瑞阿拼音_ name ' : ' ziyuanguanli ',' create dat ' 3: ' 2017-05-26t 0933336336363648648.416 z ','更新于' 33: ' 2017-05-27t 073313363641969 z ',' id ' : ' 5从41到10-f131 f-4eb 2-91 ba-25从102到25aa' }, { '管道仪表流程图' 3360 ' FBE 848 C4-950 e-402d-92 C5-6fe 067 FD 1 BAC ','名称' 3360 '范仲淹呢“拼音_姓名‘3330’焦耳肯利、“create dat ' 3: ' 2017-05-26t 09333333336363648648.416 z”、“更新于' 3: ' 2017-05-27t 073336173366041.970 z”、“id ' 3: ' 9fb 5a 8a-c 3304-403 a-724-f 47cc 73 a 913 关于

1.孟尝君

/api/acl_role/getList:获取角色列表参数:无返回值:{ '代码' : '200 ','消息' : '获取详情成功,' result': [ { 'name': '经适房用户,' create dat ' : ' 2017-05-26t 09:49336022.361 z ',' updatedAt ' : ' 2017-05-26t 09:49336022.361 z ',' id ' 33: ' 27 aab 6d 9-325 c-4c 88-be4a-5d a 516 DC 9613 ' } '对账单用户,' create dat ' : ' 2017-05-26t 09:52336015.061 z ',' updatedAt ' : ' 2017-05-26t 09:52336015.061 z ',' id ' 333: ' ba 306957-9c 80-4abb-89 FD-17be 828 dd5 F5 '对账单管理员,' create dat ' : ' 2017-05-26t 09:52336026.914 z ',' updatedAt ' : ' 2017-05-26t 09:52336026.914 z ',' id ' 333: ' fc 154424-2264-4de 9-a7c-1 b1df 048 f 8000超级管理员,' create dat ' : ' 2017-05-26t 09:52336039.894 z ',' updatedAt ' : ' 2017-05-26t 0933605236039.894 z ',' id ' 33: ' 442 fc56-23 a9-4c B9-85 b5-641 BC 161 C4 C3 ' },修改角色

/api/acl_role/update参数:{ id:xxx,name:xxx,}返回值:{code:'200 ',msg: '修改成功!',result:data.update}3 .查询角色详情(含角色的权限列表)

/api/acl_role/getOne参数:id :27 aab 6d 9-325 c-4c 88-be4a-5d a 516 DC 9613返回值:{ '代码' : '200 ','消息' : '获取详情成功,' result ' : { ' info ' : { ' name ' : '经适房用户,' create dat ' : ' 2017-05-26t 09:49336022.361 z ',' updatedAt ' : ' 2017-05-26t 09:49336022.361 z ',' id ' 33: ' 27 aab 6d 9-325 c-4c 88-be4a-5da 516 DC 9613 ' } '删除角色

/api/acl_role/delete db删除角色前交叉韧带删除该角色和资源的关系移除允许,删除角色removeRole参数:{ id:xxx,}返回值:{code:'200 ',msg: '删除成功!',结果:结果}5。给角色添加资源

/api/acl_role/allow删除角色和资源的关系acl.removeAllow给角色和资源添加关系acl。允许参数:{ role:xxx,resources:xxx }返回值:{code:'200 ',msg: '成功!'}用户相关:

1.用户登录

/API/ACL _用户/登录参数:{ account:xxx,password:xxx }返回值:{code:200,msg: '登录成功}{code:400,msg: '密码错误}{code:400,msg: '账号不存在'}2.用户退出

/API/ACL _ user/注销参数:{}返回值:{code:200,msg: '退出成功!'}3.添加用户

/api/acl_user/add参数:{ name:xxx,account:xxx,password:xxx }返回值:{code:'200 ',msg: '创建成功!',result:data.save}4 .修改用户

/api/acl_user/update参数:{ id:xxx,name:xxx,account:xxx,password:xxx }返回值:{code:'200 ',msg: '修改成功!',result:data.save}5 .查询用户详情(含用户权限列表)

/api/acl_user/getOne db获取用户信息前交叉韧带获取用户权限允许权限参数:{ id:xxx,name:xxx,account:xxx,password:xxx }返回值:{code:'200 ',msg: '修改成功!',result:data.save}6 .获取用户列表

/api/acl_user/getList参数:{ }返回值:{ '代码' : '200 ','消息' : '获取详情成功,' result ' :[{ ' name ' : ' wuvanyu ',' create dat ' : ' 2017-05-27t 02:14336019.994 z ',' updatedAt ' : ' 2017-05-27t 02:50:56.309 z ',' account ' : ' 120 ',' password ' :删除用户

/api/acl_user/delete db删除用户前交叉韧带删除用户角色关系移除用户角色,删除用户移除用户参数:{ id:xxx }返回值:{code:'200 ',msg: '删除成功!',结果:结果}8。获取用户权限

/API/ACL _ user/allowed permissions参数:userid : xxxresources : xx返回值:{code:'200 ',msg: '成功!',结果:结果}9。给用户添加角色

/api/acl_user/addUserRoles获取所有用户角色acl。用户角色,删除所有用户角色ACL。删除用户角色添加新角色acl.addUserRoles参数:userid : xxroles 3360 xx返回值:{code:'200 ',msg:' success!',result:result}10。向用户添加角色

/api/acl_user/userRoles获取acl.userRoles. Userroles的acl参数:userId:xxx返回值:{code3360' 200 ',msg: '成功!',result:result}nodejs开源权限管理框架参考:

Node_acl(1373星):https://github。com/OptimalBits/Node _ ACL优势:支持快递

连接角色(564星):https://github.com/ForbesLindesay/connect-roles评论:为了支持快递,你还需要介绍passport.js

Rbac(309星):https://github.com/CherryProjects/rbac优势:支持快递

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

更多资讯
游戏推荐
更多+