gpt4 book ai didi

node.js - sails 政策 - 使用变量

转载 作者:太空宇宙 更新时间:2023-11-03 21:56:19 29 4
gpt4 key购买 nike

我开始收到很多类似这样的 sails 政策:

...
'MyController':{
'some': ['runPassport', 'isLoggedIn', 'ensureTotpOkIfEnabled'],
'action': ['runPassport', 'isLoggedIn', 'ensureTotpOkIfEnabled'],
'here': ['runPassport', 'isLoggedIn', 'ensureTotpOkIfEnabled', 'extra'],
},
....

问题在于重复。我想要一个快捷方式,例如“userIsAuthenticated”。

我可以声明一个变量

var userIsAuthenticated = ['runPassport', 'isLoggedIn', 'ensureTotpOkIfEnabled'];
....

'MyController':{
'some': userIsAuthenticated,
'action': userIsAuthenticated,
'here': Array.concat(userIsAuthenticated, ['extra'],
},

我的问题是这里的操作。我认为语法很难阅读并且容易出错。

我尝试写:

'MyController':{
'some': userIsAuthenticated,
'action': userIsAuthenticated,
'here': [userIsAuthenticated, 'extra'],
},

看起来很漂亮。这可能有效。虽然我知道我得到一个包含两个项目的数组,第一个项目是一个包含 3 个项目的数组。

所以,问题是。在 Sails 中声明这样的策略是否安全?我在手册( http://sailsjs.org/documentation/concepts/policies )中找不到任何提及该语法的内容。也许还有其他方法吗?

最佳答案

So, question is. Is it safe to declare policies like that in Sails or not. I cannot find any mention of that syntax in the manual (http://sailsjs.org/documentation/concepts/policies) . Is there perhaps some other approach?

通过使用

var userIsAuthenticated = ['runPassport', 'isLoggedIn', 'ensureTotpOkIfEnabled'];
....

'MyController':{
'some': userIsAuthenticated,
'action': userIsAuthenticated,
'here': Array.concat(userIsAuthenticated, ['extra'],
},

'MyController':{
'some': userIsAuthenticated,
'action': userIsAuthenticated,
'here': [userIsAuthenticated, 'extra'],
},

你什么也没赢得。由于文档是这样描述的,因此其他开发人员更难以理解它

...
'MyController':{
'some': ['runPassport', 'isLoggedIn', 'ensureTotpOkIfEnabled'],
'action': ['runPassport', 'isLoggedIn', 'ensureTotpOkIfEnabled'],
'here': ['runPassport', 'isLoggedIn', 'ensureTotpOkIfEnabled', 'extra'],
},
....

但我知道你的感受。因此,您可以做的是在模型或 Controller 级别定义策略:

module.exports.policies = {
'*': true,
MyModel: ['runPassport', 'isLoggedIn', 'ensureTotpOkIfEnabled'], // model level
MyController: { // controller level
'*': ['runPassport', 'isLoggedIn', 'ensureTotpOkIfEnabled'],
fooAction: 'extra'
}
};

问题是 fooAction 没有继承 * 的策略,这很奇怪。因此,fooAction 只会调用 extra 策略。所以你的问题没有真正的解决方案。您可以在此处创建提案 https://github.com/balderdashy/sails/issues

关于node.js - sails 政策 - 使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39752721/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com