gpt4 book ai didi

node.js - 如何使用Loopback ACL模型/表?

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

我正在尝试为我的其余 API 设置访问控制。 Loopback 为处理基于用户/角色/主体的访问提供了一个很好的起点。

但是如果我想要的东西超出了所提供的范围,例如模型实例的多个所有者?向 ACL 表添加条目就足够了吗?或者我应该创建一个新的角色/解析器,如果是这样,我可以/应该重用现有的 ACL 模型/表或推出自己的吗?

Loopback 很棒,但文档缺乏深度,最终导致您阅读源代码。

最佳答案

在这种特殊情况下,我建议创建一个自定义角色解析器。

类似这样的事情:

Role.registerResolver('$inOwners', function (role, ctx, callback) {
ctx.model.count({
id: ctx.modelId,

// This only works for mongo db...
owners: ctx.accessToken.userId
}, function(err, count) {
if (err) {
callback(err);
} else if (count) {
callback();
} else {
callback(new Error('Not Owner'));
}
});
});

然后您可以将其添加到 acls(在模型静态 acls 中、在 json 文件中,或者将其添加到 ACL 表中):

{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$inOwners",
"permission": "ALLOW",
"property": "*",
"model": "*"
}

请记住,每当对回送方法的访问取决于文档/行内的内容时,您只能使用角色解析器为其定义 ACL,否则您必须创建自己的 ACL 系统。

关于node.js - 如何使用Loopback ACL模型/表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39675796/

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