在 Loopback 上未经授权的 HasMany 关系入口点
HasMany relation entry point unauthorized on Loopback
Loopback 的新手,我尝试用用户模型和待办事项模型制作一个简单的 API。
名为Todoer的用户模型基于内置的用户模型。创建一个待办事项、登录、注销等。就像一个魅力。
Todo 模型基于 PersistedModel,目前没有特殊的 ACL。
我创建了一个从 Todo 模型到 Todoer 模型的 Belongs To 关系所有权。
我还建立了从 Todoer 到 Todo 的 HasMany 关系,以便能够检索 a 的所有待办事项用户通过端点 GET /Todoer/{id}/todos
通过登录的待办事项,使用良好的令牌和 ID,我可以轻松地为登录用户保留来自待办事项端点的响应,例如 GET /Todoer/{id}
,所以我确定身份验证机制正在运行嗯
但每次我想点击 GET /Todoer/{id}/todos
时,我只会收到一条错误消息,告诉我我没有被授权。我始终确定我提供了良好的令牌和登录时获得的 Todoer Id。
即使我在 Todoer 模型上制作了一个大的 ACL 告诉所有人一切都OK,它也会发生同样的情况。
我错过了什么?我想不通...
感谢您的帮助...
您需要在 ACL 规则优先级) 上考虑内置 User
model. You are actually running into its general DENY
ACL rule. It takes priority over your general ALLOW
ACL rule (docs 的 ACL。
您可以编写更具体的 ACL 规则以通过它(docs on 访问相关模型)。
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW",
"property": "__get__todos"
}
在这种情况下可能更方便和安全的另一种选择是在 Todo
本身上使用动态 $owner
角色(docs 在 Dynamic角色).
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
}
如果您想了解应用程序中的 ACL 发生了什么,将 DEBUG
环境变量设置为 loopback:security:*
以启用相当广泛的安全日志记录非常有用。
Loopback 的新手,我尝试用用户模型和待办事项模型制作一个简单的 API。
名为Todoer的用户模型基于内置的用户模型。创建一个待办事项、登录、注销等。就像一个魅力。 Todo 模型基于 PersistedModel,目前没有特殊的 ACL。
我创建了一个从 Todo 模型到 Todoer 模型的 Belongs To 关系所有权。 我还建立了从 Todoer 到 Todo 的 HasMany 关系,以便能够检索 a 的所有待办事项用户通过端点 GET /Todoer/{id}/todos
通过登录的待办事项,使用良好的令牌和 ID,我可以轻松地为登录用户保留来自待办事项端点的响应,例如 GET /Todoer/{id}
,所以我确定身份验证机制正在运行嗯
但每次我想点击 GET /Todoer/{id}/todos
时,我只会收到一条错误消息,告诉我我没有被授权。我始终确定我提供了良好的令牌和登录时获得的 Todoer Id。
即使我在 Todoer 模型上制作了一个大的 ACL 告诉所有人一切都OK,它也会发生同样的情况。
我错过了什么?我想不通...
感谢您的帮助...
您需要在 ACL 规则优先级) 上考虑内置 User
model. You are actually running into its general DENY
ACL rule. It takes priority over your general ALLOW
ACL rule (docs 的 ACL。
您可以编写更具体的 ACL 规则以通过它(docs on 访问相关模型)。
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW",
"property": "__get__todos"
}
在这种情况下可能更方便和安全的另一种选择是在 Todo
本身上使用动态 $owner
角色(docs 在 Dynamic角色).
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
}
如果您想了解应用程序中的 ACL 发生了什么,将 DEBUG
环境变量设置为 loopback:security:*
以启用相当广泛的安全日志记录非常有用。