權限管理,是管理系統中的常見組件。一般須要定義資源,把資源調配給用戶,經過判斷用戶是否有權限增刪改查來實現。前端
使用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