哪些请求参数可用于判断请求是来自 Postman 还是来自 NodeJS 服务器?

Which request params can be used to tell if a request is coming from Postman vs NodeJS server?

我 运行 向第三方 API 发送了两个相同的 API 请求——一个在邮递员中,另一个在 NodeJS 中。 API 在 Postman 与 NodeJS 中以不同的 set-cookie header 响应。

我试过:

每次,Postman 中的 API 请求都会响应与 NodeJS 不同的 set-cookie header。邮递员请求正在接收正确的 session 令牌,而 NodeJS 请求不是。

  1. API 服务器可以通过某种方式分辨出两种环境之间的区别,但是如何区分呢?
  2. postman 运行 是否在无头浏览器上,以便它可以“欺骗”服务器检查浏览器运行时?
  3. postman 是真正的“curl”而 nodejs 请求不是吗?
  4. 鉴于请求 headers 和 body 在两个请求中相同,哪些变量可用于区分邮递员请求和 nodejs 请求?

我会亲自为来这里寻找答案的任何人回答这个问题。显然,Postman 使用一些神奇的配置从浏览器发出请求,同时绕过 CORS 问题。

他们称之为“邮递员代理”。看起来它可能是关闭了 CORS 的无头浏览器前面的本地代理(或类似的东西)。

您可以在这里阅读:https://blog.postman.com/introducing-the-postman-agent-send-api-requests-from-your-browser-without-limits/

就我而言,问题不是由请求之间的差异引起的。这是由处理响应的方式引起的。 Postman 显示在初始 302 响应中收到的 cookie,然后跟随重定向。 NodeJS 请求遵循重定向但未在最终响应中显示初始 'set-cookie' header。一旦我在 nodejs 中设置 redirect: 'manual',我就可以从最初的 302 响应中看到正确的 header。