У меня есть универсальное приложение Angular (Angular 5.2.11), размещенное в Heroku, работающее на сервере Node с экспрессом, и я использую ограничители скорости во всех моих маршрутах POST, проверяя IP-адрес запроса в req.header ('x-forwarded-for' ) или req.connection.remoteAddress для ограничения запросов по ip.
Проблема в том, что когда эти запросы выполняются универсальным приложением, используется IP-адрес компьютера / сетевого слова, на котором размещен мой сервер. Это может привести к неправильному ограничению скорости для разных пользователей, поскольку у меня может быть 100 пользователей, запрашивающих мою домашнюю страницу одновременно, и ограничение скорости в 20 запросов в окне продолжительностью 10 секунд для каждого запроса POST, присутствующего на этой странице.
Есть ли способ передать исходный ip-адрес запроса в универсальное приложение и использовать его в заголовках запросов, чтобы универсальное приложение действовало от имени исходного пользователя и предотвращало эти неправильные ограничения скорости?
Спасибо!
Я использую это решение, и оно отлично работает! Спасибо!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Нет.
Angular Universal - это библиотека для выполнения рендеринга на стороне сервера.
Код работает на вашем сервере, а не в браузере.
Вы не можете отправить запрос со своего компьютера и сделать так, чтобы он выглядел как исходящий из браузера какого-либо пользователя. Сервер будет пытаться ответить не в том месте.
Хорошо, спасибо за отзыв! И в этом случае, что я мог сделать, чтобы решить проблему ограничения скорости? Все мои запросы, которые извлекают данные из моей БД, защищены ограничителями скорости, чтобы предотвратить DOS и другие типы атак, поэтому об использовании этих ограничителей не может быть и речи.
Должен ли я занести IP-адрес моего сервера в белый список в ограничителях скорости?
Вам нужно будет внести IP-адрес вашего сервера в белый список.