我想通过环回获取有关我的用户的一些信息。
为此,我创建了一个与"user"
模型相关的"accessToken"
模型,直到现在/user
上的POST,/user/login
上的POST和/user/logout
上的POST正在运行。
我在/common/models/user.json
{
"name": "user",
"base": "User",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {},
"validations": [],
"relations": {
"accessTokens": {
"type": "hasMany",
"model": "accessToken",
"foreignKey": "userId"
}
},
"acls": [
{
"accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW",
"property": "logout"
},
{
"accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW",
"property": "findById"
}
],
"methods": {}
}
当我在/user/{id}
进行GET时,我得到了:
{
"error": {
"statusCode": 401,
"name": "Error",
"message": "Autorisation requise",
"code": "AUTHORIZATION_REQUIRED",
"stack": "Error: Autorisation requise\n at..."
}
}
我想我不太了解acl / relation
答案 0 :(得分:0)
这可能是因为您只允许$owner
到findById
:
要限定$ owner的资格,目标模型需要与User模型(或扩展User的模型)具有属地关系,并且属性必须与目标模型实例的外键匹配。 $ owner的检查仅对路径上带有“:id”的远程方法(例如GET / api / users /:id)执行。
accessToken
是您要寻找的id
的{{1}}的所有者。user
与"principalId": "$owner"
,然后您就会知道这是否是您的问题。