【发布时间】:2015-11-14 13:37:34
【问题描述】:
我们陷入了这样一种情况,即我们想在运行时使用环回创建“远程方法”?这样任何客户端都可以在运行时创建自己的安全路由,而无需重新加载服务器。
另外,我们如何将 ACL 添加到运行时添加的远程方法中?
【问题讨论】:
标签: node.js express loopbackjs strongloop
我们陷入了这样一种情况,即我们想在运行时使用环回创建“远程方法”?这样任何客户端都可以在运行时创建自己的安全路由,而无需重新加载服务器。
另外,我们如何将 ACL 添加到运行时添加的远程方法中?
【问题讨论】:
标签: node.js express loopbackjs strongloop
首先,远程方法是在运行时添加的,尽管是在启动时。您可以在 common/models 文件夹中的 model.js 中定义它们。您可以在docs 中查看它们。如果有任何问题,请尝试添加远程方法并显示您的代码。
其次,您可以通过两种方式将 ACL 添加到您的代码中:
使用DataSource的createModel()函数:
var Customer = ds.createModel('Customer', {
name: {
type: String,
acls: [
{ principalType: ACL.USER, principalId: 'u001', accessType: ACL.WRITE, permission: ACL.DENY },
{ principalType: ACL.USER, principalId: 'u001', accessType: ACL.ALL, permission: ACL.ALLOW }
]
}
}, {
acls: [
{principalType: ACL.USER, principalId: 'u001', accessType: ACL.ALL, permission: ACL.ALLOW}
]
});
在您的情况下,您可以在 model.js 中使用 ACL 的 create() 函数
ACL.create({principalType: ACL.USER, principalId: 'u001', model: 'User', property: ACL.ALL, accessType: ACL.ALL, permission: ACL.ALLOW}, function(err, acl) {...});
ACL.create({principalType: ACL.USER, principalId: 'u001', model: 'User', property: ACL.ALL, accessType: ACL.READ, permission: ACL.DENY}, function(err, acl) {...});
您可以在docs 中阅读有关在运行时添加 ACL 的信息。
【讨论】: