2015-08-11 3 views
0

У меня возникли проблемы с проверкой базовой аутентификации с использованием роли admin. Я пытаюсь создать администратора суперпользователя, который будет иметь доступ к API-интерфейсам Role и User REST. На основании примера в документации, я использовал загрузочный скрипт для создания admin роли и связанные с пользователем:Обычная проверка подлинности в Strongloop

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); 
      }); 
     }) 

Я также установить следующие acls недвижимости на Role недвижимости в server/model-config.json:

"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, похоже, работают, потому что любые запросы против API Role REST дают ошибку 401. Я также могу успешно войти в систему как пользователь выше и установить токен доступа в проводнике. Тем не менее, я все еще получаю ошибку 401, когда я пытаюсь сделать запросы GET в качестве этого пользователя.

Я также пробовал эту настройку на других не встроенных моделях с таким же результатом.

Я уверен, что есть небольшая вещь, которую мне не хватает, но я не могу понять ее. Любая помощь высоко ценится!

Спасибо,

Jon

ответ

1

Вы, кажется, называют "principalId": "api_admin", в ACL, но в приведенном выше коде, который вы определяете админа как 'admin'. Я бы изменил одно или другое, чтобы соответствовать.

+0

Хорошо, что это смущает ... Я думал, что это, наверное, что-то простое, просто не мог найти его. Огромное спасибо. – user3431474

Смежные вопросы