加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

详解nodejs中express搭建权限管理系统

发布时间:2020-12-16 08:17:26 所属栏目:百科 来源:网络整理
导读:权限管理,是管理系统中的常见组件。通常需要定义资源,把资源调配给用户,通过判断用户是否有权限增删改查来实现。 初衷: 使用express开发过的项目大大小小加在一起也有二十多个了,之前做的各个项目都是独立存在的。最近领导建议说把这些小项目整合到一个

权限管理,是管理系统中的常见组件。通常需要定义资源,把资源调配给用户,通过判断用户是否有权限增删改查来实现。

初衷:

使用express开发过的项目大大小小加在一起也有二十多个了,之前做的各个项目都是独立存在的。最近领导建议说把这些小项目整合到一个大的平台上,给各部门开权限,让他们在一个平台上进行操作。这样做的好处,首先是便于项目管理,其次是节约开发成本。但好像目前使用nodejs做权限管理的资料并不多,这里特意分享出来,仅供参考。

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

预期效果:

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

主要模块:

  • express:node框架
  • express-hbs:模板引擎
  • node_acl:权限管理系统的核心
  • mongodb:数据库
  • sails-mongodb:连接mongodb的引擎

前端

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读