【问题标题】:Cookies not saved when using npm request library使用 npm 请求库时未保存 Cookie
【发布时间】:2021-09-03 21:45:45
【问题描述】:

我有一个本地环境,我正在尝试登录服务。我在客户端使用“请求”库,在服务中使用 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

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

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

【问题讨论】:

    标签: javascript express http cookies cross-domain


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多