node.js - 在航线上的 sails 中应用多个策略

标签 node.js sails.js policies

如何在 sails 生成的路线上应用多个策略,如下所示: /users/:id/orders 。我可以在 config/routes.js 中应用这样的单个策略

'/users/:id/orders' : {
   policy : 'isAuthenticated'
}

但是如何以类似的方式应用多个策略

最佳答案

遗憾的是文档http://sailsjs.org/documentation/concepts/routes/custom-routes#?policy-target-syntax不讨论路由中的链接策略。

作为替代方案,您可以保护用户 Controller 中的填充操作,如下所示:编辑 config/policies.js

UserController: {
    populate: ['isAuthenticated', 'isAllowed']
}

http://sailsjs.org/documentation/reference/blueprint-api/populate-where

如果您只想将策略应用于订单关联,则可以从策略内的 req 对象中检索关联参数 (/:model/:id/:association) 并处理您的情况:

module.exports = function(req, res, next) {
  if (req.param('association') == 'orders') {
      // do your magic
  } else {
     return next();
  }
};

关于node.js - 在航线上的 sails 中应用多个策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39654172/

相关文章:

linux - 是否可以在启用 v8 快照的情况下交叉编译 node.js?

HTML 文件作为 Node.js 中的变量

javascript - 如何将所有 HTTP 请求记录到我的 Sails.js 服务器?

parameters - 将参数传递给sails.js 策略

javascript - 如何在 sails.js 中创建动态策略

php - 路由 : Too few arguments to function 1 passed 2 expected 上的 Laravel 策略

javascript - Express sessionID 根据每个客户端的请求而更改

node.js - 集合和 View 在 Backbone 脚本中不起作用?

node.js - 获取 Waterline 中插入的记录

javascript - sails.js 如何构建实时 Web 控制台应用程序