Почему апостроф продолжает делать POST-вызовы, чтобы проверить, вошел ли пользователь в систему? - PullRequest
1 голос
/ 25 октября 2019

Существует множество POST-вызовов с веб-сайта на сервер, и я не знаю, как их отключить.

2019-10-24T21:24:49.606Z - info: admin already logged in. Passing through...
2019-10-24T21:25:09.767Z - info: /modules/apostrophe-notifications/poll-notifications
2019-10-24T21:25:09.768Z - info: admin already logged in. Passing through...
2019-10-24T21:25:29.911Z - info: /modules/apostrophe-notifications/poll-notifications
2019-10-24T21:25:29.912Z - info: admin already logged in. Passing through...
2019-10-24T21:25:50.023Z - info: /modules/apostrophe-notifications/poll-notifications
2019-10-24T21:25:50.024Z - info: admin already logged in. Passing through...

Это просто продолжается и продолжается ...

В моем файле app.js я установил параметры longPollingTimeout на 0, но это не останавливает его, а когда я установил на 20000 мс, он отправляет их каждые 20 секунд.

var apos = Mongo.getMongoPw().then(function(mongoPw){
  return require('apostrophe')({
    ...
    modules: {
      ...
      'apostrophe-notifications': {
        longPollingTimeout: 20000
      },
      ...
    }
  });

В моих журналах, которые мы отправляем в spunk, это выглядит очень бессмысленно и спамом.

Как отключить эту функцию, если она не нужна?

1 Ответ

1 голос
/ 28 октября 2019

API, на который вы ссылаетесь, опрашивает уведомления, которые могут быть отправлены в любое время с помощью кода на стороне сервера или на стороне браузера. Например, если вы попробуете это в консоли браузера:

apos.notify('Oh no!', { type: 'error' });

Вы получите уведомление, которое сохраняется до тех пор, пока оно не будет отклонено (оно хранится на стороне сервера).

Где это получает большеполезно, когда они отправляются на стороне сервера. Например, ваш серверный javascript может также сказать:

if (req.user) {
  // server side you must include req
  apos.notify(req, 'Oh no!', { type: 'error' });
}

Теперь уведомление достигнет текущего пользователя, вошедшего в систему, рано или поздно, и вам не нужно думать о том, как его доставить. ;об этом позаботятся о вас опросы-уведомления. Это очень полезно в длительных задачах. Без этой функции Apostrophe не сможет доставить много необходимых сообщений пользователю.

Однако вам интересно, почему вы получаете это раздражающее сообщение в своих журналах:

admin already logged in. Passing through...

Я проверил как модуль ядра апострофов, так и модуль рабочего процесса апострофов. Ни один из них не содержит такого сообщения. Я также использовал поиск в github, чтобы проверить всю организацию апострофов на наличие этого сообщения, которое не отображается. То же самое для поиска в github. Я пропустил слово «admin» и в apostrophecms org также попытался найти слово «проходящий через» в одиночку, не вызывая никакого кода.

Итак, это означает, что ваш пользовательский код или другой npmМодуль, который вы добавили в свой проект, содержит пользовательское промежуточное ПО, которое регистрирует это сообщение при каждом поступающем запросе. Я бы рекомендовал отключить это промежуточное ПО, так как нет необходимости сообщать об этом при каждом опросе уведомлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...