使用 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,
});
我有本地环境,正在尝试登录服务。我在客户端和 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,
});