Проблемы с получением подлинности при использовании контроля доступа к статическим ролям в моделях. Кажется, что все работает при использовании ACL с основными типами $ authenticated и $ every. Таким образом, средства контроля доступа функционируют так, как ожидалось, при входе в систему и выходили из системы. Поскольку ACL переносятся на статические роли, аутентификация не выполняется, и возвращается 401. Используются Loopback, встроенные в модели для ролей, ролевого сопоставления и пользователя. Я пробовал использовать ROLE и USER в качестве PrincipTypes.
Создание пользователя, роль и принципала с RoleMapping:Как выполнить аутентификацию с использованием статической роли в Loopback ACL
User.create({
username: 'admin',
email: '[email protected]',
password: 'password',
active: true
},
function (err, user) {
Role.create({
name: 'Admin'
},
function (err, role) {
if (err) throw err;
console.log('Created role:', role);
//make user an admin
role.principals.create({
principalType: RoleMapping.USER,
//principalType: RoleMapping.ROLE,
principalId: user.id,
active: true
},
function (err, principal) {
if (err) throw err;
console.log('Principal:', principal);
});
});
});
клиентов Модель: запись
"name": "Customer",
"base": "PersistedModel",
"strict": false,
"idInjection": false,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
},
"description": {
"type": "string"
},
"active": {
"type": "boolean"
}
},
"validations": [],
"relations": {
"products": {
.........
},
"users": {
.........
}
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
WORKS AS EXPECTED
"accessType": "*",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW"
},
{
RETURNS 401 AFTER LOGGING IN AS USER ASSIGNED TO ROLE
"accessType": "*",
"principalType": "ROLE",
"principalId": "Admin",
"permission": "ALLOW"
}
],
"methods": []
Пользователь создан:
"_id" : ObjectId("55b7c34d6033a33758038c3b"),
"username" : "admin",
"password" : ....,
"email" : "[email protected]",
"active" : true
Роль записи:
"_id" : ObjectId("55b7c34d6033a33758038c3e"),
"name" : "Admin",
"created" : ISODate("2015-07-28T18:00:45.336Z"),
"modified" : ISODate("2015-07-28T18:00:45.336Z")
RoleMapping Запись:
"_id" : ObjectId("55b7c34d6033a33758038c41"),
"principalType" : "USER",
"principalId" : "55b7c34d6033a33758038c3b",
"roleId" : ObjectId("55b7c34d6033a33758038c3e"),
"active" : true
Спасибо заранее за любую помощь!
Проблема в том, что статическая роль не была зарегистрирована в качестве обработчика [роль] (http://apidocs.strongloop.com/loopback/ # role-registerresolver) – switcher
Привет, у меня такая же проблема. Как вы это решили. не могли бы вы уточнить. Спасибо –
Подумайте, что проблема была решена путем выполнения шагов, перечисленных в разделе «Динамические роли»: https://docs.strongloop.com/display/public/LB/Defining+and+using+roles – switcher