我正在使用Feathersjs,需要保护服务的补丁方法。我正在使用feathers-hooks-common
进行挂钩。仅在从服务器进行调用或由管理员完成调用时,才需要允许使用patch方法。
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())
)
],
}