Mongodb 环回中的管理员角色
我在mongodb的环回项目中设置管理员角色时遇到问题。我已经建立了一个简单的模型,添加了ACL,创建了一个用户,并将该用户与管理员角色关联,但我无法通过API资源管理器访问该模型-它总是返回“需要授权” 以下是我采取的步骤: 1) 我通过slc添加了模型测试: slc环回:模型 ? 输入模型名称:test ? 选择要将测试附加到的数据源:moti_db(mongodb) ? 选择模型的基类:PersistedModel ? 通过RESTAPI公开测试?对 ? 自定义复数形式(用于构建REST URL): 现在让我们添加一些测试属性 2) 通过注册页面创建用户:id=1 3) 通过API创建管理员角色:id=1 4) 将Role和RoleMapping更改为public=true,以便我可以通过RESTAPI设置它们 以下是测试数据模型:Mongodb 环回中的管理员角色,mongodb,loopbackjs,Mongodb,Loopbackjs,我在mongodb的环回项目中设置管理员角色时遇到问题。我已经建立了一个简单的模型,添加了ACL,创建了一个用户,并将该用户与管理员角色关联,但我无法通过API资源管理器访问该模型-它总是返回“需要授权” 以下是我采取的步骤: 1) 我通过slc添加了模型测试: slc环回:模型 ? 输入模型名称:test ? 选择要将测试附加到的数据源:moti_db(mongodb) ? 选择模型的基类:PersistedModel ? 通过RESTAPI公开测试?对 ? 自定义复数形式(用于构建REST
{
"name": "test",
"base": "PersistedModel",
"idInjection": true,
"properties": {
"name": {
"type": "string"
}
},
"validations": [],
"relations": {},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "admin",
"permission": "ALLOW"
}
],
"methods": []
}
这就是角色
{
"id": 1,
"name": "admin",
"created": "2015-05-22T19:45:23.887Z",
"modified": "2015-05-22T19:45:23.887Z"
}
以下是角色映射:
{
"id": 1,
"principalType": "USER",
"principalId": "1",
"roleId": 1
}
您是否在浏览器顶部设置了授权令牌?您需要使用电子邮件和密码调用User.login(),然后将Auth令牌设置为返回的Auth ID值。然后,此令牌将与所有后续调用一起发送(作为
授权:
头值),并允许您进行需要身份验证的调用
另一个有用的方法是使用ACL调试运行API,您可以这样做
DEBUG=loopback:security slc run
它会告诉你它是如何决定访问权限的。也许输出会有帮助(粘贴在这里)。否则,这只是一个猜测,因为你的代码看起来不错,并且假设你以前登录过并且正在使用令牌
DEBUG=loopback:security slc run