使用 npm 请求库时未保存 Cookie

Cookies not saved when using npm request library

我有本地环境,正在尝试登录服务。我在客户端和 Express 中使用 'request' 库,在服务中使用 express-session。

我正在使用 Chrome,当我登录该服务时,我收到以下响应 headers:

FROM: http://app.dev:3000
TO: http://app.dev:4000/login/local

HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: http://app.dev:3000
Vary: Origin, X-HTTP-Method-Override
Access-Control-Allow-Credentials: true
Content-Type: application/json; charset=utf-8
Content-Length: 304
ETag: W/"130-fdQBs605dSVTeEqXEuXrvdcQTLk"
set-cookie: auth=TOKEN; Path=/; Expires=Sun, 25 Jun 2017 01:48:41 GMT
Date: Sat, 24 Jun 2017 13:48:41 GMT
Connection: keep-alive

当我使用 Postman 登录时,cookie 被正确存储。通过 Postman 的后续请求包括 cookie,一切正常。

但是使用 npm request 库执行相同的请求时,它不会保存 cookie,并且对后端的后续请求不包含 cookie。登录后对服务的示例请求。未发送 cookie。

request 库文档没有提到 withCredentials 选项,但将其设置为 true 可以解决问题。 cookie 现在已保存并在后续请求中发送。

const requestBase = request.defaults({
  baseUrl: 'http://app.dev:4000/',
  withCredentials: true,
});