仅当从服务器进行调用或用户是管理员时才允许方法



我正在使用feathersjs,我需要保护我的服务的补丁方法。我使用feathers-hooks-common作为挂钩。只有在从服务器进行调用或由管理员进行调用时,我才需要允许补丁方法。

const {disallow, isNot, iff, isProvider} = require('feathers-hooks-common'); 
const isAdmin = context => { return context.params.user.isAdmin;}
module.exports = {
patch: [
iff(isProvider('external') && isNot(isAdmin), disallow()), 
iff(isNot(isProvider('server')), disallow())
],
}

第二条规则iff(isNot(isProvider('server')), disallow())工作正常,但我无法获得允许服务器调用的第一条规则。

钩子不能与条件词组合,但由于您已经在使用iff,因此可以将其作为嵌套语句:

const {disallow, isNot, iff, isProvider} = require('feathers-hooks-common'); 
const isAdmin = context => { return context.params.user.isAdmin;}
module.exports = {
patch: [
iff(isProvider('external'),
iff(isNot(isAdmin), disallow())
)
],
}

相关内容

  • 没有找到相关文章

最新更新