使用 npm 请求库时未保存 Cookie

Jan*_*ala 6 javascript cookies http cross-domain express

我有一个本地环境,我正在尝试登录服务。我在客户端使用“请求”库,在服务中使用 Express 和 express-session。

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

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
Run Code Online (Sandbox Code Playgroud)

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

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

Jan*_*ala 5

请求库文件没有提及withCredentials选项,但它设置为true,修复该问题。cookie 现在被保存并在后续请求中发送。

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