Loopback acl和ownerid

时间:2016-03-15 14:06:27

标签: node.js loopbackjs strongloop

我对ACL如何在环回上工作有点怀疑。

我正在关注示例https://github.com/strongloop/loopback-example-access-control

REST Api允许create调用将ownerid作为参数传递,但不进行任何验证。

因此,经过身份验证的用户可以创建项目并将ownerid设置为任何值。我认为只应允许管理员角色设置属性。

我知道我可以放一些代码来进行验证..但我相信必须根据当前登录的用户自动设置值。我错了或者我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:5)

我花了很多时间才发现这一点。虽然看起来属于并且内置的persistedModel和UserModel之间的关系必须自动设置为ownerId,但它可能是一个设计问题。

为了实现您的目标,您必须在访问令牌参数的每个远程请求之前设置ownerId,如下所示:

Model.beforeRemote('create', function(context, model, next) {
    var req = context.req;
    req.body.ownerId = req.accessToken.userId;
    next();
});

然后从api中隐藏ownerId属性。

编辑:

如果您想自动设置ownerId,请参阅this link了解详情。