【发布时间】:2019-11-14 23:32:50
【问题描述】:
我目前正在处理我的 loopback3 (3.26.0) api 的访问控制,并且努力限制除所有者之外的所有人对属性的访问。
假设我有一个用户 -> 运动员关系。运动员拥有“secretProperty”。
我将 secretProperty 设置为 protected 并且我有一个
Athlete.afterRemote('**', function(ctx, modelInstance, next) { // i am restricting property access here, which works for direct .find()}
如here所述
但我仍然有问题,当我查询时
GET /user/{id}/athlete
返回的数据包含我的 secretProperty,我的钩子永远不会被调用
如何限制对所有端点的属性的访问? (基本上将其设置为隐藏,但不适用于某些角色/用户)
这是我的模型定义: 运动员.json
{
"name": "athlete",
"plural": "athletes",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": false,
"default": ""
},
"mySecretProperty": {
"type": "number",
"required": false,
"default": 0
}
},
"relations": {
"user": {
"type": "belongsTo",
"model": "user",
"foreignKey": ""
}
}
}
user.json
{
"name": "user",
"plural": "users",
"base": "User",
"idInjection": true,
"options": {
"validateUpsert": true
},
"validations": [],
"relations": {
"athlete": {
"type": "hasOne",
"model": "athlete",
"foreignKey": ""
}
}
}
【问题讨论】:
-
您好,您可以显示描述您的作者和书籍模型的文件吗?
-
我添加了我的模型定义(并将模型名称更改为我的实际名称)
标签: javascript rest loopbackjs loopback