Strongloop 中的基本身份验证

Basic authentication in Strongloop

我在使用 admin 角色测试基本身份验证时遇到问题。我正在尝试设置一个可以访问 RoleUser REST API 等的管理员超级用户。根据文档中的示例,我使用引导脚本创建了 admin 角色和关联用户:

var User = app.models.User,
        Role = app.models.Role,
        RoleMapping = app.models.RoleMapping;

    User.create([
        {username: '<my_username>', email: '<my_email>', password: '<my_password>'}
    ], function(err, users) {
        if (err) return console.log('%j', err);

        // Create the admin role
        Role.create({
          name: 'admin'
        }, function(err, role) {
          if (err) return debug(err);
          console.log(role);

          // Make me an admin
          role.principals.create({
            principalType: RoleMapping.USER,
            principalId: users[0].id
          }, function(err, principal) {
            if (err) return debug(err);
            console.log(principal);
          });
        })

我还在 server/model-config.json 中的 Role 属性 上设置了以下 acls 属性:

"acls": [{
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "DENY"
    },{
      "accessType": "READ",
      "principalType": "ROLE",
      "principalId": "api_admin",
      "permission": "ALLOW",
      "property": "find"
    },{
      "accessType": "READ",
      "principalType": "ROLE",
      "principalId": "api_admin",
      "permission": "ALLOW",
      "property": "findById"
    }]

这些 acls 设置似乎有效,因为对 Role REST API 发出任何请求都会出现 401 错误。我还能够以上述用户身份成功登录并在资源管理器中设置我的访问令牌。但是,当我尝试以该用户身份发出 GET 请求时,仍然收到 401 错误。

我也在其他非内置模型上尝试过此设置,结果相同。

我确定我遗漏了一些小东西,但我似乎无法弄清楚。非常感谢任何帮助!

谢谢,

乔恩

您似乎在 ACL 中调用 "principalId": "api_admin",,但在上面的代码中您将管理员定义为 'admin'。我会改变一个或另一个来匹配。