如何设置环回ACL,以便所有经过身份验证的用户都可以创建,但只有所有者可以更新

时间:2018-12-03 21:24:02

标签: loopback

我正在使用Loopback版本3.24,并希望在我的模型上设置ACL,以便任何经过身份验证的用户都可以创建新对象,但是只有对象所有者可以更新对象。

当前,我具有以下ACL设置:

{
  "name": "MyModel",
  "plural": "MyModels",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "profileId": {
      "type": "number",
      "required": true
    },
    ...
  },
  "validations": [],
  "relations": {
    "profile": {
      "type": "belongsTo",
      "model": "Profile",
      "foreignKey": "profileId"
    }
  },
  "acls": [
    {
      "accessType": "WRITE",
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "DENY"
    },
    {
      "accessType": "WRITE",
      "principalType": "ROLE",
      "principalId": "$owner",
      "permission": "ALLOW"
    },
    {
      "accessType": "EXECUTE",
      "principalType": "ROLE",
      "principalId": "$authenticated",
      "permission": "ALLOW",
      "property": "create"
    }
  ],
  "methods": {}
}

但是当经过身份验证的用户发布新对象时,API会以未经授权的401响应。

1 个答案:

答案 0 :(得分:0)

ACL配置没有问题。问题是我没有随请求一起发送access_token。添加access_token参数后,请求成功完成。