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.获取用户角色

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

express搭建权限管理系统的更多相关文章

  1. Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  2. Angularjs,WebAPI 搭建一个简易权限管理系统

    Angularjs,WebAPI 搭建一个简易权限管理系统 Angularjs名词与概念(一)   1. 目录 前言 Angularjs名词与概念 权限系统原型 权限系统业务 数据库设计和实现 Web ...

  3. JavaEE权限管理系统的搭建(一)--------项目中用到的知识点概括

    转战Java有一段时间了,.net 已不再开发的新的工程,基本上在维护,最近大半年时间在学习Java,今天抽空将学习的到的知识,应用到了一个权限管理系统的小项目中,特此记录一下.代码如有不对之处,希望 ...

  4. Angularjs,WebAPI 搭建一个简易权限管理系统 —— Angularjs 前端主体结构(五)

    目录 前言 Angularjs名词与概念 Angularjs 基本功能演示 系统业务与实现 WebAPI项目主体结构 Angularjs 前端主体结构 6 Angularjs 前端主体结构 6.1 A ...

  5. ABP+AdminLTE+Bootstrap Table权限管理系统第九节--AdminLTE模板页搭建

    AdminLTE 官网地址:https://adminlte.io/themes/AdminLTE/index2.html 首先去官网下载包下来,然后引入项目. 然后我们在web层添加区域Admin以 ...

  6. JavaEE权限管理系统的搭建(四)--------使用拦截器实现登录认证和apache shiro密码加密

    RBAC 基于角色的权限访问控制(Role-Based Access Control)在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限.这就极大地简化了权限的管理.在一个 ...

  7. Asp.Net Core 项目实战之权限管理系统(0) 无中生有

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  8. node实现后台权限管理系统

    本文面向的是node初学者,目标是搭建一个基础的后台权限系统.使用的node框架是上手最简单的express,模板是ejs,这些在node入门的书籍中都有介绍说明,所以应该是难度较低的. 对于node ...

  9. Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

随机推荐

  1. 总结this指向问题

    在全局上下文中,this指向全局. 在函数内部,this的值取决于函数被调用的方式. 当函数简单调用时(函数在全局上下文中),this指向window(严格模式下指向undefined) call 或 ...

  2. [Exception Android 20] - Error:Execution failed for task ':app:processDebugResources'

    Error:Execution failed for task ':app:processDebugResources'. > com.android.ide.common.process.Pr ...

  3. MAC OS X 10.8 操作远程SSH服务器 + 无密码输入使用SSH服务器

    怀揣着为中小企业量身定做一整套开源软件解决方案的梦想开始了一个网站的搭建.http://www.osssme.org/ 使用命令行连接连接远程SSH服务器,root为我使用的远程服务器用户名,@后为I ...

  4. HTML-HTML5+CSS3权威指南阅读(三、CSS选择器)

    1.伪元素选择器 first-line, first-letter, before, after 2.属性选择器 [attr*=val]: 如果元素的 attr 属性中包含用 val 指定的字符的话, ...

  5. fscanf和feof的组合使用

    http://stackoverflow.com/questions/15719360/using-fscanf-using-feof 靶子代码: #include<stdio.h> vo ...

  6. linux系统常用命令 -设置文件夹读写权限

    设置文件夹的读写权限: sudo chmod -R 777 /data 权限码描述 sudo chmod 600 ××× (只有所有者有读和写的权限)sudo chmod 644 ××× (所有者有读 ...

  7. 微信小程序 异步请求拿数据+使用外部js库

    信小程序(与js)通过requirejs引用外部js文件 var modelSearch = require('../../utils/modelSearch.js') 这是一个构建数据请求筛选条件的 ...

  8. epoll反应堆模型

    ================================ 下面代码实现的思想:epoll反应堆模型:( libevent 网络编程开源库 核心思想) 1. 普通多路IO转接服务器: 红黑树 ― ...

  9. jQuery源代码学习:经常使用正則表達式

    转载自:http://nuysoft.iteye.com/blog/1217898 经常使用的数字正则(严格匹配) 正则 含义 ^[1-9]\d*$ 匹配正整数 ^-[1-9]\d*$ 匹配负整数 ^ ...

  10. 联想E440问题:点击鼠标时,弹出“无法连接synaptics定点装置驱动程序”错误

    笔记本:Levono E440   问题描述: 在控制面板中,点击鼠标时,弹出“无法连接synaptics定点装置驱动程序”错误,如何解决? 即使在安装联想的驱动后,也没办法解决   解决步骤: 1. ...