Ошибка AUTHORIZATION_REQUIRED при запуске Strongloop с PM2 в кластерном режиме

Я запускаю Strongloop, используя PM2 в качестве диспетчера процессов.

  • pm2 start server / server.js -i 0 (запускает сильный цикл в кластерном режиме).
  • Список pm2 (показывает мне два экземпляра сервера с разными PID). Пример изображения списка pm2

В моем приложении Angular-fullstack:

  • Выполните вызов POST с адресом электронной почты и паролем, чтобы получить токен, ttl и т. д. Ответ был правильным: {"id":"z2MgpdN2dyXHHWw2DLhAI026vHBgxw43jpCz9khWa7U9GykAmnQZAaeXV2nvEvQ8","ttl":1209600,"created":"2016-07-21T16:47:34.020Z","userId":"571609e4c88c6db26b75aacd"}
  • Выполните вызов GET с использованием идентификатора (токена), чтобы получить дополнительную информацию о пользователе: http://myrestservice.com:3000/api/Users/571609e4c88c6db26b75aacd?access_token=z2MgpdN2dyXHHWw2DLhAI026vHBgxw43jpCz9khWa7U9GykAmnQZAaeXV2nvEvQ8 Ответом была ошибка 401 AUTHORIZATION_REQUIRED

Вопрос !!: Как настроить StrongLoop для обработки нескольких экземпляров одного и того же server / server.js? Я читал о настройке сохраненного сеанса REDIS, но в руководствах говорится об управлении сохраненными сеансами Express + REDIS. Думаю, это другой подход.


Заранее благодарим!


person Andres Castano Cuervo    schedule 21.07.2016    source источник


Ответы (1)


Похоже, вы не сохраняете свои токены доступа в общем источнике данных для всех ваших запущенных серверов / процессов.

Попробуйте проверить свой model-config.json файл и убедитесь, что источник данных для модели AccessToken является общим.

Это, вероятно, НЕ будет использоваться всеми вашими серверами / процессами:

"AccessToken": {
  "dataSource": "memory",
  "public": false
},

Это БУДЕТ разделено между всеми вашими серверами / процессами:

"AccessToken": {
  "dataSource": "mysqlDs",
  "public": false
},

* Где mysqlDs хранится в MySQL

Это соответствующий раздел документации Loopback по настройке источников данных https://docs.strongloop.com/display/public/LB/Attaching+models+to+data+sources#Attachingmodelstodatasources-Makethemodelusethedatasource

person AndresSRG    schedule 21.07.2016
comment
это точно ответ на мой вопрос !. Большое спасибо!. В моем случае: dataSource: gpds-db указывает на mongodb - person Andres Castano Cuervo; 22.07.2016