javascript - Angular Universal 在 POST 请求中使用我服务器的 IP 地址

标签 javascript node.js angular express angular-universal

我有一个 Angular Universal 应用程序(Angular 5.2.11)托管在 Heroku 中,在带有 express 的 Node 服务器中运行,并且我在所有 POST 路由中使用速率限制器检查 req.header('x-forwarded -for') 或 req.connection.remoteAddress 通过 ip 限制请求。

问题是,当通用应用程序发出这些请求时,使用的 ip 来自托管我的服务器的机器/网络。这可能会导致对不同用户的错误速率限制,因为我可能有 100 个用户同时请求我的主页,并且对于此页面中出现的每个 POST 请求,在 10 秒的窗口中的速率限制为 20 个请求。

有没有办法将原始请求 ip 传递给通用应用程序,并在请求 header 中使用它,使通用应用程序代表原始用户并防止那些错误的速率限制?

谢谢!

最佳答案

没有。

Angular Universal 是一个用于执行服务器端渲染的库。

代码在您的服务器上运行,而不是在浏览器上运行。

您不能从您的机器发出请求并让它看起来像是来自某些用户的浏览器。服务器会尝试响应错误的地方。

关于javascript - Angular Universal 在 POST 请求中使用我服务器的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53190383/

相关文章:

node.js - 我在我的 nestJS 应用程序(使用 authGuard)中使用 passport-jwt 身份验证策略,如何访问我的 Controller 中的 token 有效负载?

Angular 7 单元测试 Observable 订阅调用

javascript - ngrx副作用: wait for store data or cancel

javascript - 版本号验证

javascript - Sublime Text 在一行中显示 CSS 和 Javascript

javascript - 为什么 VS Code javascript intellisense 依赖于我打开的文件?

mysql - Express - mysql 查询结果未呈现

node.js - Azure Bot NodeJS 等待其他对话框完成

Angular2 router.navigate刷新页面

javascript - Mustache Js View 中的各种对象