说明
Q: 这个工具用来做什么的呢
A: 用户有不同的权限,比如管理员,vip,普通用户,每个用户对应访问api,页面都不一样
nodejs有两个比较有名的权限管理模块 一个是acl 一个是rbac 综合对比了一下最终在做项目的时候选择了acl
使用方法
- 建立起配置文件
- 用户登录后分配相应的权限
- 需要控制的地方使用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'] },
]
},
{