Sailsjs 更改路由策略顺序

Sailsjs changing route policies order

我的config/policies.js

module.exports.policies = {
  '*': ['tokenValidate'],
};

我的config/routes.js

'POST /users': [ { policy: 'onlyAdmin' }, { action: 'users/create' } ],

使用此配置,当我向 /users 发送 POST 时,首先请求在 onlyAdmin 策略 -> tokenValidate 策略 -> users/create 操作上停止,为了解决我的问题,我需要调用 tokenValidate在仅管理政策之前。

如果我使用下面的代码,tokenValidate 会被调用两次。

'POST /users': [ { policy: 'tokenValidate' }, { policy: 'onlyAdmin' }, { action: 'users/create' } ],

我已经阅读了文档,但一无所获,有人知道如何解决这个问题吗?

有一个选项可以将政策作为数组包含在内:

// config/policies.js

module.exports.policies = {
  '*': 'tokenValidate',
  'folder/file-or-*': ['tokenValidate', 'onlyAdmin']
};

检查文档中的Policy ordering and precedence

https://sailsjs.com/documentation/concepts/policies

另一种方法是使用 hook 进行令牌验证和权限策略:

https://sailsjs.com/documentation/concepts/extending-sails/hooks/hook-specification

或帮手:

https://sailsjs.com/documentation/concepts/policies/access-control-and-permissions