在路线上的风帆中应用多个策略

时间:2016-09-23 06:39:51

标签: node.js sails.js policies

如何在sails中对由这样的sails生成的路由应用多个策略:/users/:id/orders。我可以在config / routes.js

中应用这样的单个策略
'/users/:id/orders' : {
   policy : 'isAuthenticated'
}

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

1 个答案:

答案 0 :(得分:2)

遗憾的是,文档http://sailsjs.org/documentation/concepts/routes/custom-routes#?policy-target-syntax没有谈到路由中的链接策略。

作为替代方案,您可以保护用户控制器中的填充操作,如下所示:编辑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();
  }
};