【发布时间】:2015-07-04 17:04:03
【问题描述】:
在 StrongLoop API Explorer 中,我可以选择查询:
/People/{id}/food_prefs
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,但即使我设置了它以供所有人访问,我仍然会收到此错误。为什么?
【问题讨论】:
-
在向 API 发出请求之前,您首先需要验证您的身份。在请求中包含为身份验证返回的会话 ID。
-
我试过了,我得到了身份验证令牌并在资源管理器中设置了令牌,仍然没有运气。同样的错误。这很奇怪,因为我可以查询相反的 /food_prefs/{id}/person 并获取拥有该 food_pref 的人的用户 ID 和电子邮件信息。
-
我也做了 slc loopback:acl 并将 person 设置为每个人都可以访问所有方法,即使这样也没有用。
-
基本用户模型 acl 怎么样?您是否尝试更改它们以查看它是否会影响您的子模型?
-
在一个更简单的模型中,我尝试将其添加到 common/models { "accessType": "EXECUTE", "principalType": "ROLE", "principalId": "$everyone 下的 person.json ", "permission": "ALLOW", "property": "_get_toys" } 有效,但对 _get_food_prefs 无效,我想知道该属性是否命名为其他名称。
标签: node.js relationship http-status-code-401 strongloop loopback