权限管理,是管理系统中的常见组件。一般须要定义资源,把资源调配给用户,经过判断用户是否有权限增删改查来实现。前端
使用express开发过的项目大大小小加在一块儿也有二十多个了,以前作的各个项目都是独立存在的。最近领导建议说把这些小项目整合到一个大的平台上,给各部门开权限,让他们在一个平台上进行操做。这样作的好处,首先是便于项目管理,其次是节约开发成本。但好像目前使用nodejs作权限管理的资料并很少,这里特地分享出来,仅供参考。node
一开始在node_acl、Connect Roles、rbac这几个框架中徘徊,最终选择的node_acl框架,但node_acl只帮你作了权限管理的一部分工做,只保存用户、角色、资源三者 之间的关联关系,用户、角色、资源自己并无保存。而咱们要作的就是把用户、角色、资源的增删改查补齐,就是一个完整的权限管理系统了。git
超级管理员登陆后,能够进行全部操做,能够看到全部菜单栏;
普通用户登陆后只有部分权限,只能看到部分菜单栏或操做按钮。github
Amaze ui、angular、Z-Treesql
安装mongodb数据库mongodb
(1) 将源代码目录下sql文件夹的内容,拷贝到mongodb安装目录的bin目录下 (2) 命令行方式进入mongodb安装目录的bin目录下,运行 mongorestore -d acltest acltest.dmp/acltest,将数据导入acltest表
资源相关:
1.保存资源树
2.获取资源列表数据库
角色相关:
1.添加角色
2.修改角色
3.查询角色列表
4.删除角色
4.查询角色详情(含角色的权限列表)express
用户相关:
1.用户登陆
2.用户退出
3.添加用户
4.修改用户
5.删除用户
6.获取用户列表
7.查询用户详情(含用户权限列表)
8.给用户添加角色
9.获取用户角色npm
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