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

标签 javascript feathersjs

我正在使用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/

相关文章:

javascript - 如何在不破坏响应能力的情况下制作具有不同图像尺寸的静态轮播

node.js - 羽毛 js 中的关联查询

node.js - 如何在 Feathers js 中使用传统 session

sequelize.js - 羽毛 Sequelize 不适用于 `` `原始 : false ``` anymore after upgrading to Buzzard

javascript - 用另一个字符串替换字符串中的字符?

javascript - Django serializeArray() 来自一个表单标签内的 2 个 django.form 字段

javascript - JS Highcharts表格-如何设置类别名称

javascript - 每次使用该命令时输出都会增加

feathersjs - 如何在 FeathersJS 中设置 JWT 的 `sub` 声明?

javascript - Feathers Js 在服务器端限制对页面的访问