Strongloop/loopback: как отключить аутентификацию для модели пользователя через REST?

Я набрал в командной строке: slc loopback:acl и отключил всю безопасность для модели User.

Заходя в проводник strongloop, выполняя простой запрос GET Users, я получаю ошибку 401, требующую авторизации.

Любые идеи, как открыть объект пользователя? Это известная ошибка?

Спасибо


person user798719    schedule 18.05.2015    source источник
comment
Это возможно путем расширения пользовательской модели и настройки разрешений для пользовательской модели, но... Я бы НИКОГДА не рекомендовал вам делать это. Зачем открывать пользовательскую или любую другую модель, связанную с безопасностью? Нет смысла делать это, потому что цель состоит в том, чтобы защитить ваше приложение. При открытии этой или любой другой модели, связанной с безопасностью, ваше приложение будет полностью незащищенным. Частные пользовательские данные также будут доступны всем. Может быть, вы пытаетесь сделать что-то еще?   -  person A.Z.    schedule 18.05.2015
comment
Я понимаю ваши опасения. Это только для развития. Я хочу добавить функциональность входа/безопасности в конце проекта. Поэтому я хочу отключить временно.   -  person user798719    schedule 18.05.2015


Ответы (2)


Вы можете расширить свою пользовательскую модель и установить разрешения для своей пользовательской модели следующим образом:

{
  "name": "CustomUser",
  "base": "User",
  "idInjection": true,
  "properties": {},
  "validations": [],
  "relations": {},
  "acls": [
    {
      "accessType": "READ",
      "principalType": "ROLE",
      "principalId": "$unauthenticated",
      "permission": "ALLOW"
    },
    {
      "accessType": "READ",
      "principalType": "ROLE",
      "principalId": "$authenticated",
      "permission": "ALLOW"
    },
    {
      "accessType": "*",
      "principalType": "ROLE",
      "principalId": "$owner",
      "permission": "ALLOW"
    }
  ],
  "methods": []
}

Однако я НИКОГДА не рекомендую вам это делать.

person A.Z.    schedule 18.05.2015
comment
Если это не рекомендуется, не могли бы вы объяснить, как реализовать такой сценарий: пользователь с правами администратора должен просматривать всех пользователей в списке, используя angular-sdk, предоставленный lb-ng. Проверяйте наличие повторяющегося имени пользователя при создании/регистрации нового пользователя. Любые предпринятые попытки приводят к несанкционированной ошибке. Кроме того, опубликован вопрос для того же stackoverflow.com/questions/31907774/ - person Anoop.P.A; 15.08.2015

Если вы действительно хотите отключить конечные точки в модели User, вы можете сделать это.

Перейдите к своему model.config.json и добавьте "public": false в поле User следующим образом:

...

  "User": {
    "public": false,
    "dataSource": "db"
  },
...
person codejockie    schedule 28.02.2019