【发布时间】:2019-02-05 18:04:39
【问题描述】:
我想通过环回获取有关我的用户的一些信息。
为此,我创建了一个与 "accessToken" 模型相关的 "user" 模型,直到现在,/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
【问题讨论】:
-
您能否检查您的
model-config.json以确保内置的User模型不是公开的?您可能正在路由到它而不是您的自定义用户模型。findById也映射到READ accessType -
你能不能把 "accessType": "EXECUTE" 改成 "accessType": "*" 然后检查一下。
-
您的环回应用程序中是否启用了令牌授权?如果是,您应该在您的
/user/{id}请求中提供访问令牌。
标签: node.js acl relation loopback apiconnect