nodejsacl的用戶權限管理詳解-創(chuàng)新互聯(lián)

說明

成都創(chuàng)新互聯(lián)公司始終堅持【策劃先行,效果至上】的經(jīng)營理念,通過多達10多年累計超上千家客戶的網(wǎng)站建設總結了一套系統(tǒng)有效的全網(wǎng)營銷解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:成都生料攪拌車等企業(yè),備受客戶稱贊。

Q: 這個工具用來做什么的呢

A: 用戶有不同的權限,比如管理員,vip,普通用戶,每個用戶對應訪問api,頁面都不一樣

nodejs有兩個比較有名的權限管理模塊 一個是acl 一個是rbac 綜合對比了一下最終在做項目的時候選擇了acl

功能列表:

  1. addUserRoles //給某用戶添加角色
  2. removeUserRoles //移除某用戶角色
  3. userRoles //獲取某用戶所有角色
  4. roleUsers //獲取所有是此角色的用戶
  5. hasRole // 某用戶是否是某角色
  6. addRoleParents //給某角色增加父角色
  7. removeRoleParents //移除某覺得的某父角色或所有父角色
  8. removeRole //移除某角色
  9. removeResource //移除某資源
  10. allow //給某些角色增加某些資源的某些權限
  11. removeAllow //移除某些角色的某些資源的某些權限
  12. allowedPermissions //查詢某人的所有資源及其權限
  13. isAllowed //查詢某人是否有某資源的某權限
  14. areAnyRolesAllowed //查詢某角色是否有某資源的某權限
  15. whatResources //查詢某角色有哪些資源
  16. middleware //middleware for express
  17. backend //指定方式(mongo/redis…)

ACL名詞及其主要方法

roles 角色

  1. removeRole
  2. addRoleParents
  3. allow
  4. removeAllow

resources 資源

  1. whatResources
  2. removeResource

permissions 權限

users 用戶

  1. allowedPermissions
  2. isAllowed
  3. addUserRoles
  4. removeUserRoles
  5. userRoles
  6. roleUsers
  7. hasRole
  8. areAnyRolesAllowed

使用方法

  1. 建立起配置文件
  2. 用戶登錄后分配相應的權限
  3. 需要控制的地方使用acl做校檢

配置文件

const Acl = require('acl');
const aclConfig = require('../conf/acl_conf');

module.exports = function (app, express) {
  const acl = new Acl(new Acl.memoryBackend()); // eslint-disable-line

  acl.allow(aclConfig);

  return acl;
};

// acl_conf

module.exports = [
  {
    roles: 'normal', // 一般用戶
    allows: [
      { resources: ['/admin/reserve'], permissions: ['get'] },
    ]
  },
  {
    roles: 'member', // 會員
    allows: [
      { resources: ['/admin/reserve', '/admin/sign'], permissions: ['get'] },
      { resources: ['/admin/reserve/add-visitor', '/admin/reserve/add-visitor-excel', '/admin/reserve/audit', '/admin/sign/ban'], permissions: ['post'] },
    ]
  },
  {
    roles: 'admin',  // 管理
    allows: [
      { resources: ['/admin/reserve', '/admin/sign', '/admin/set'], permissions: ['get'] },
      { resources: ['/admin/set/add-user', '/admin/set/modify-user'], permissions: ['post'] },
    ]
  },
  {
    roles: 'root', // 最高權限
    allows: [
      { resources: ['/admin/reserve', '/admin/sign', '/admin/set'], permissions: ['get'] },
    ]
  }
];

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網(wǎng)站名稱:nodejsacl的用戶權限管理詳解-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://muchs.cn/article2/eejoc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、做網(wǎng)站、網(wǎng)站導航外貿網(wǎng)站建設、網(wǎng)站建設動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設公司