Mongodb 环回中的管理员角色

Mongodb 环回中的管理员角色,mongodb,loopbackjs,Mongodb,Loopbackjs,我在mongodb的环回项目中设置管理员角色时遇到问题。我已经建立了一个简单的模型,添加了ACL,创建了一个用户,并将该用户与管理员角色关联,但我无法通过API资源管理器访问该模型-它总是返回“需要授权” 以下是我采取的步骤: 1) 我通过slc添加了模型测试: slc环回:模型 ? 输入模型名称:test ? 选择要将测试附加到的数据源:moti_db(mongodb) ? 选择模型的基类:PersistedModel ? 通过RESTAPI公开测试?对 ? 自定义复数形式(用于构建REST

我在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设置它们

以下是测试数据模型:

 {
  "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