【发布时间】:2017-06-28 22:27:21
【问题描述】:
我正在尝试为基本路由身份验证设置ACL middleware。在此示例中,我只是想确保用户(在本例中为我自己)拥有“管理员”权限。
我的路线如下所示:
// define the home page route
router.get('/', acl.middleware(1, '594a984a9815beb8219dca22', 'admin'), function (req, res) {
acl.userRoles('594a984a9815beb8219dca22', function(err, roles){
res.send(roles)
})
})
使用中间件,我得到消息:
HttpError: Insufficient permissions to access resource
如果我在没有中间件的情况下运行这条路线,usersRole() 函数确实会返回
['admin']
作为响应。我不知道 ACL 还需要做什么才能将我识别为管理员。我显然具有“管理员”角色。
更新
这是连接代码:
var dbConn = mongoose.connect(configDB.url); // connect to our database
acl = new acl(new acl.mongodbBackend(mongoose.connection.db))
我的 config.url 是:
module.exports = {
'url' : 'mongodb://127.0.0.1:27017/NodeMongo'
}
【问题讨论】:
-
如果没有 acl 中间件函数定义,很难看出问题所在。
-
这只是来自 acl 文档npmjs.com/package/acl#middleware的原版定义@