在一条路线上的风帆中应用多项政策
Apply multiple policies in sails on a route
如何在 sails 生成的路线上应用多个策略,如下所示:/users/:id/orders
。我可以在 config/routes.js
中应用这样的单个策略
'/users/:id/orders' : {
policy : 'isAuthenticated'
}
但是如何以类似的方式应用多个策略
遗憾的是文档 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
如果您只想将策略应用于订单关联,您可以从策略中的请求对象中检索关联参数 (/:model/:id/:association
) 并处理您的情况:
module.exports = function(req, res, next) {
if (req.param('association') == 'orders') {
// do your magic
} else {
return next();
}
};
如何在 sails 生成的路线上应用多个策略,如下所示:/users/:id/orders
。我可以在 config/routes.js
'/users/:id/orders' : {
policy : 'isAuthenticated'
}
但是如何以类似的方式应用多个策略
遗憾的是文档 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
如果您只想将策略应用于订单关联,您可以从策略中的请求对象中检索关联参数 (/:model/:id/:association
) 并处理您的情况:
module.exports = function(req, res, next) {
if (req.param('association') == 'orders') {
// do your magic
} else {
return next();
}
};