Loopback Создание аутентифицированных запросов / управление токенами доступа - PullRequest
0 голосов
/ 05 ноября 2018

Я следовал документации по аутентификации Loopback, все было ясно и просто. Создание пользователя через POST, вход в систему также через POST.

Но сразу после этого я застрял на том, как получить токен доступа и добавить его к другим запросам. Что касается проводника, вам нужно просто скопировать / вставить его в текстовое поле токена и нажать кнопку «установить токен». Как насчет API стороны? во всей документации токен считается само собой разумеющимся и инициализируется в каждом методе, начиная с:

ACCESS_TOKEN=6Nb2ti5QEXIoDBS5FQGWIz4poRFiBCMMYJbYXSGHWuulOuy0GTEuGx2VCEVvbpBK

# Authorization Header
curl -X GET -H "Authorization: $ACCESS_TOKEN" \
http://localhost:3000/api/widgets

# Query Parameter
curl -X GET http://localhost:3000/api/widgets?access_token=$ACCESS_TOKEN

или

var USER_ID = 1;
var ACCESS_TOKEN = '6Nb2ti5QEXIoDBS5FQGWIz4poRFiBCMMYJbYXSGHWuulOuy0GTEuGx2VCEVvbpBK';
// remove just the token
var token = new AccessToken({
  id: ACCESS_TOKEN
});
token.destroy();
// remove all user tokens
AccessToken.destroyAll({
  userId: USER_ID
});

как реализовать мое приложение там, где есть разные пользователи.

Я работаю над приложением Angular 6 и приложением ionic 3.

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Для этого конкретного проекта (это полностью личный выбор) я хотел, чтобы это был полностью RESTful проект, следовательно, без загрузочного скрипта и без статических определений JavaScript. Итак, мне пришлось немного поиграть с предопределенными моделями петли (User, Role, RoleMapping ...)

0 голосов
/ 05 ноября 2018

Аутентификация в кольцевом шлейфе довольно прозрачна, и это здорово, чтобы освоить ее, требуется несколько времени.

Вы должны посмотреть ACL (контроль доступа), документ здесь.

Это работает с Role, ( документ здесь ), поэтому, в основном, вместо того, чтобы управлять всем самостоятельно, вы будете сообщать в петле, какой тип пользователя (роль), и какой тип пользователя можно увидеть и сделать в вашем приложении (ACL).

После этого, когда запрос сделан с токеном доступа, loopback разрешает связанного пользователя и его роль, а затем решает, разрешено ли действие.

EDIT

Чтобы отправить запрос, вы добавляете access_token в качестве параметра запроса: http://domain/endpoint?access_token=*token*. Токен получен при входе пользователя через конечную точку входа под именем id

{
  "id": "LZQB7CmC7pYrk6vz7Ghf9MaIFRQYmnouKFxjolZE5GP6XqLal53fyLg475a8PTC8",
  "ttl": 1209600,
  "created": "2018-11-05T11:31:12.110Z",
  "userId": "5b8e7a47c6f12d00c5d6db29"
}

вы можете хранить его в локальном хранилище для последующего использования.

...