1.0.1 • Published 6 years ago
express-permission-middleware v1.0.1
express-permission
express permission middleware
- 安装 npm install express-permission-middleware -S
- 中间件启用
var express = require('express'); var app = express(); var p = require('express-permission-middleware'); app.use(p.init({ reqMethodName: 'somePermission', forbidden: function(req, res, next) { res.status(403).send('global forbidden method') }, getPermissions: function(req, res, cb) { console.log('dynamic get user permissions') // permissions cache in req if (req._permissions === undefined) { req._permissions = ['a','b'] } cb(req._permissions) } }))
1. 中间件初始化的参数
参数名称 描述 reqMethodName 自定义req中调用插件的名称,默认值(somePermission) 即在路由中可以调用req.somePermission getPermissions 定义用户获取权限数组的方法 forbidden 定义权限不足是默认的返回
- 中间件在路由中启用 主要的有两个方法参数都是一样的
1.p.verify中间件的函数
参数名称 | 说明 |
---|---|
参数1 | 权限验证表达式 如'a','a && b', 'a || (b && c)' |
参数2 | 传入权限不足时调用的方法,如果设置该参数,则不会调用设定的全局的权限不足处理函数 |
2.req.somePermission 请求的附加函数(其中somePermission可以通过reqMethodName自定义)
参数名称 | 说明 |
---|---|
参数1 | 权限验证表达式 如'a','a && b', 'a || (b && c)' |
参数2 | 验证结果处理回调函数 (result) |
var p = require('express-permission-middleware');
/* GET home page. */
router.get('/',
p.verify('a && (b && c)', (req, res, next) => {
console.log('forbidden in router ')
next()
}),
(req, res, next) => {
req.somePermission('a && (b && c)', (result) => {
console.log('using in req method result: ' + result)
if (result) {
res.render('index', { title: 'Express' });
} else {
next()
}
}
)},
p.verify('a && (b && c)'),
function(req, res, next) {
res.render('index', { title: 'Express' });
}
);