详解nodejs中express搭建权限管理系统
权限管理,是管理系统中的常见组件。通常需要定义资源,把资源调配给用户,通过判断用户是否有权限增删改查来实现。 初衷:使用express开发过的项目大大小小加在一起也有二十多个了,之前做的各个项目都是独立存在的。最近领导建议说把这些小项目整合到一个大的平台上,给各部门开权限,让他们在一个平台上进行操作。这样做的好处,首先是便于项目管理,其次是节约开发成本。但好像目前使用nodejs做权限管理的资料并不多,这里特意分享出来,仅供参考。 一开始在node_acl、Connect Roles、rbac这几个框架中徘徊,最终选择的node_acl框架,但node_acl只帮你做了权限管理的一部分工作,只保存用户、角色、资源三者 之间的关联关系,用户、角色、资源本身并没有保存。而我们要做的就是把用户、角色、资源的增删改查补齐,就是一个完整的权限管理系统了。 预期效果:超级管理员登录后,可以进行所有操作,可以看到所有菜单栏; 普通用户登录后只有部分权限,只能看到部分菜单栏或操作按钮。 主要模块:
前端:Amaze ui、angular、Z-Tree 源码地址:https://github.com/wuwanyu/aclDemo 运行前提:安装mongodb数据库 运行 1. 数据准备 (1) 将源代码目录下sql文件夹的内容,拷贝到mongodb安装目录的bin目录下 (2) 命令行方式进入mongodb安装目录的bin目录下,运行 mongorestore -d acltest acltest.dmp/acltest,将数据导入acltest表 2.安装依赖包:npm install 3. 运行:npm start 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.保存资源树(增加、修改、删除都是这个方法) 2.获取资源列表 角色 1.查询角色列表 2.修改角色 3.查询角色详情(含角色的权限列表) 4.删除角色 5.给角色添加资源 用户相关:1.用户登录 2.用户退出 3.添加用户 4.修改用户 5.查询用户详情(含用户权限列表) 6.获取用户列表 }
返回值: { "code": "200","result": [ { "name": "wuwanyu","createdAt": "2017-05-27T02:14:19.994Z","updatedAt": "2017-05-27T02:50:56.309Z","account": "120","password": "123","id": "7daa4635-9f9d-4c79-9f15-c827097ac15a" } ],"count": 1 } 7.删除用户 参数:
{ id:xxx } 返回值: { code:"200",result:result } 8.获取用户权限 9.给用户添加角色 10.给用户添加角色 nodejs开源权限管理框架参考: node_acl(1373星):https://github.com/OptimalBits/node_acl 优点:支持express Connect Roles(564星): https://github.com/ForbesLindesay/connect-roles 点评:支持express,还需要引入passport.js rbac(309星 ):https://github.com/CherryProjects/rbac 优点:支持express 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |