-1

我使用 Loopback Framework 创建多个服务,并使用 api 网关 (tyk) 来管理它们。

不幸的是,我看不到如何为每个人设置访问控制。

我不希望用户访问不属于他的数据。

非常感谢,

4

1 回答 1

1

您可以轻松地使用两种方法来保护您的模型。

1.来自model.json文件

在您的模型 model.json 中,您可以包含 ACL 对象。

 "acls": [{
    "accessType": "EXECUTE",
    "principalType": "ROLE",
    "principalId": "$authenticated",
    "permission": "ALLOW"
  }, {
    "accessType": "*",
    "principalType": "ROLE",
    "principalId": "$everyone",
    "permission": "DENY"
  }]

2.在model.js文件中使用操作钩子可以使用操作钩子来操作安全性。

例子

 Template.observe('access', function (ctx, next) {
    if(ctx.options.team){
      var teamId = ctx.options.team.teamId;
     ctx.query.where= ctx.query.where  || {or :[ {user_created : 0},{teamId : teamId}]}   ;
    next();
    }

  });

希望这会有所帮助。

于 2017-09-27T09:19:10.730 回答