为什么我在查询用户项时会出现 401 错误?
Why do I get error 401 when I query items of user?
在 StrongLoop API 资源管理器中,我可以选择查询:
/People/{id}/food_prefs
Person 基于内置的 User 模型。此查询应该 return 一个 JSON 列表,其中包含该人(用户)的所有 food_prefs。相反,我收到有关授权的 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,但即使我设置了它以供所有人访问,我仍然会收到此错误。为什么?
答案是将以下权限添加到Person 模型中的ACL 部分。文件名为 common/models/person.json:
{ "accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW",
"property": "__get__foodPrefs"
}
可以为其他方法设置类似的属性,例如用于扩展模型的方法,例如在 common/models/person.js 中设置的名为 "getList" 的远程方法。您只需将 __get__foodPrefs 替换为 getList。请务必注意,自动生成的方法(例如上面的方法)有两个下划线,而不是一个。
此外,其他权限可以是$authenticated、$owner等。
在 StrongLoop API 资源管理器中,我可以选择查询:
/People/{id}/food_prefs
Person 基于内置的 User 模型。此查询应该 return 一个 JSON 列表,其中包含该人(用户)的所有 food_prefs。相反,我收到有关授权的 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,但即使我设置了它以供所有人访问,我仍然会收到此错误。为什么?
答案是将以下权限添加到Person 模型中的ACL 部分。文件名为 common/models/person.json:
{ "accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW",
"property": "__get__foodPrefs"
}
可以为其他方法设置类似的属性,例如用于扩展模型的方法,例如在 common/models/person.js 中设置的名为 "getList" 的远程方法。您只需将 __get__foodPrefs 替换为 getList。请务必注意,自动生成的方法(例如上面的方法)有两个下划线,而不是一个。
此外,其他权限可以是$authenticated、$owner等。