Loopback acl和ownerid

FuZ*_*all 2 node.js strongloop loopbackjs

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

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

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

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

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

谢谢!

via*_*iam 5

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

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

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

然后从api中隐藏ownerId属性.

编辑:


如果您想自动设置ownerId,请参阅此链接以获取更多详细信息.