我正在使用feathersjs,我需要保护我的服务的补丁方法。我使用feathers-hooks-common
作为 Hook 。仅当调用是从服务器发出或由管理员完成时,我才需要允许修补方法。
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())
工作正常,但我无法获得允许服务器调用的第一条规则。
最佳答案
钩子(Hook)不能与条件结合使用,但由于您已经在使用 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())
)
],
}
关于javascript - 仅当从服务器调用或用户是管理员时才允许方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53565831/