在StrongLoop API Explorer中,我可以选择查询:
/人/ {ID} / food_prefs
Person基于内置的User模型。此查询应返回该Person(User)的所有food_prefs的JSON列表。相反,我收到401关于授权的错误。
模型关系因此是:
Person has many food_prefs
food_pref belongs to Person (foreign key: personId)
food_pref模型如下所示:
property: type : number
property: personId : number
当我向Person / {id} / food_pref发送请求时,我收到错误401:
{
"error": {
"name": "Error",
"status": 401,
"message": "Authorization Required",
"statusCode": 401,
"code": "AUTHORIZATION_REQUIRED",
"stack": "Error: Authorization Required\n
}
我还没有设置任何ACL,但即使我将其设置为访问所有人,我仍然会收到此错误。为什么呢?
答案 0 :(得分:0)
答案是将以下权限添加到Person模型中的ACL部分。文件名是common / models / person.json:
{ "accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW",
"property": "__get__foodPrefs"
}
可以为其他方法设置类似的属性,例如用于扩展模型的方法,例如名为" getList"的远程方法。共同设置/ models / person.js。您只需将__get__foodPrefs替换为getList即可。请务必注意,自动生成的方法(例如上面的方法)有两个下划线而不是一个。
此外,其他权限可以是$ authenticated,$ owner等。