我在使用 admin
Angular 色测试基本身份验证时遇到问题。我正在尝试设置一个管理员 super 用户,该用户将有权访问 Role
和 User
REST API 等。根据文档中的示例,我使用启动脚本来创建 admin
Angular 色和关联的用户:
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 错误。我还能够以上述用户身份成功登录并在资源管理器中设置我的访问 token 。但是,当我尝试以该用户身份发出 GET 请求时,我仍然收到 401 错误。
我还在其他非内置型号上尝试过此设置,结果相同。
我确信我缺少一些小东西,但我似乎无法弄清楚。非常感谢任何帮助!
谢谢
乔恩
最佳答案
您似乎在 ACL 中调用了 "principalId": "api_admin",
,但在上面的代码中您将管理员定义为 'admin'
。我会改变其中之一来匹配。
关于javascript - Strongloop 中的基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31944800/