resourceful-acl
resourceful-acl
是一个简单的基于角色访问控制列表的授权管理express 中间件.适用于RESTful的uri
安装
npm install resourceful-acl
使用
var Acl = ;var options = //定义如何获取角色,默认从req.user.role中获取角色 { ifrequser && requserrole ; else ; } //定义当无法获取当前访问用户的角色时启用的角色,默认为'default' default:'reader' //消息,调用acl.authorize()时会传递给回调函数 success_message:'授权成功' failure_message:'请登录'; var accessList = //定义一个默认角色,当无法获取当前访问用户的角色时启用 'default': 'index':'view' // 允许读 '/',view等价于['get','option','head'] 'posts':'view' // 允许访问 posts资源 即允许访问下列url // '/posts' // '/posts/{param}' // '/posts/{param}/path' 'posts_images':'view' // 允许访问 posts 的images嵌套资源,即 // '/posts/{params}/images' // '/posts/{params}/images/{image-param}' // '/posts/{params}/images/{image-param}/path' 'custom_resource': // 如果资源较为复杂,可以使用自定义资源 path: /^\/custom_resource\/??$/ //定义一个正则表达式用于匹配请求路径 methods:'get''post' //定义允许的请求方法 'users':null // 将请求方法设置为null,则可以禁止所有方法的访问 'editor': // 定义另一个角色 extends:'default' // 角色继承,即editor拥有与default一样的权限 resources: // 定义资源 'posts': 'edit' // 在default的基础上扩展权限,edit 相当于['put','post','patch'] 'posts_images':'edit''delete' 'users':'*' // '*' 即允许所有方法 acl = optionsaccessList; /*使用中间件*///方法零//授权失败会抛出错误(err.code===403),成功则调用nextapp; //方法一//如果授权失败,跳转到指定目录,成功或者资源为定义则调用next() app; //方法二,自定义app;