Strongloop 中的基本身份验证
Basic authentication in Strongloop
我在使用 admin
角色测试基本身份验证时遇到问题。我正在尝试设置一个可以访问 Role
和 User
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'
。我会改变一个或另一个来匹配。
我在使用 admin
角色测试基本身份验证时遇到问题。我正在尝试设置一个可以访问 Role
和 User
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'
。我会改变一个或另一个来匹配。