Javascript 如何在环回中限制对模型属性的访问
我目前正在处理我的loopback3(3.26.0)api的访问控制问题,并努力为除所有者之外的所有人重新访问一处房产 假设我有一个用户->运动员关系。运动员拥有“秘密财产” 我将secretProperty设置为protected,并且我有一个Javascript 如何在环回中限制对模型属性的访问,javascript,rest,loopbackjs,loopback,Javascript,Rest,Loopbackjs,Loopback,我目前正在处理我的loopback3(3.26.0)api的访问控制问题,并努力为除所有者之外的所有人重新访问一处房产 假设我有一个用户->运动员关系。运动员拥有“秘密财产” 我将secretProperty设置为protected,并且我有一个 Athlete.afterRemote('**', function(ctx, modelInstance, next) { // i am restricting property access here, which works for direc
Athlete.afterRemote('**', function(ctx, modelInstance, next) { // i am restricting property access here, which works for direct .find()}
如上所述
但我仍然有一个问题,当我询问
GET /user/{id}/athlete
返回的数据包含我的secretProperty,我的钩子永远不会被调用
如何限制对所有端点上的属性的访问?(基本上将其设置为隐藏,但不适用于某些角色/用户)
以下是我的模型定义:
athleter.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": ""
}
}
}
尝试向运动员模型添加属性:
“受保护”:[“mySecretProperty”
],
模型之间有一组关系,但没有设置它应该在哪些字段上运行,因此不起作用
环回不提供属性级别的安全性,只提供型号级别的安全性。为提供物业级安全,我们采取了以下措施:
这意味着这是一项手动任务,你必须自己编写代码,因为它没有内置到环回中嗨,你能显示描述作者和书籍模型的文件吗?我添加了我的模型定义(并将模型的名称更改为实际的模型)。我尝试了受保护和隐藏的属性,但它们不包括我的用例。mySecretProperty应该对某些角色/用户可用,但对其他角色/用户不可用。此外,它们仅在i{include:“athletor”}它们而不是/user时工作/