Web 浏览器未向服务器发送 cookie

时间:2021-03-05 20:21:41

标签: cookies browser server

我知道这个问题已被多次发布,但我还没有找到可行的解决方案。

这是我想要实现的工作流程

  1. 客户端向服务器发送请求
  2. 服务器创建 httponly cookie 并将 cookie 添加到发送给客户端的响应中
  3. 客户端发出另一个请求,将 cookie 附加到请求中
  4. 服务器在步骤 3 中收到 cookie 并处理请求

使用 POSTMAN 我能够实现目标,但是使用网络浏览器,第 3 步不会将 cookie 发送回服务器。我在后端使用 nodejs express。

步骤 1 请求头

  Accept: application/json, text/plain, */*
  Accept-Encoding: gzip, deflate, br
  Accept-Language: en-US,en;q=0.9
  Connection: keep-alive
  Content-Length: 62
  Content-Type: application/json
  Host: localhost:3011
  Origin: http://localhost:3010
  Referer: http://localhost:3010/
  sec-ch-ua: "Chromium";v="88", "Google Chrome";v="88", ";Not\\A\"Brand";v="99"
  sec-ch-ua-mobile: ?1
  Sec-Fetch-Dest: empty
  Sec-Fetch-Mode: cors
  Sec-Fetch-Site: same-site
 User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like 
 Gecko) Chrome/88.0.4324.190 Mobile Safari/537.36

这是从服务器收到的响应浏览器

  Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
  Access-Control-Allow-Methods: GET, PUT, POST, DELETE
  Access-Control-Allow-Origin: http://localhost:3010
  Connection: keep-alive
  Content-Length: 484
  Content-Type: application/json; charset=utf-8
  Date: Sat, 06 Mar 2021 04:47:54 GMT
  ETag: W/"1e4-L6G72gn1uCPtFDqVopVlsWLRIe4"
  Keep-Alive: timeout=5
  Set-Cookie: 

accessToken=token%3DeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY3RpdmUiOjEsImlhdCI6MTYxNTAwNjA3NCwiZXhwIjoxNjE1MDA2MTk0fQ.YxKFWiK%3BHk0fQ.YxKFWiKViKViHk%3RpdmUiOjEs路径=/;到期日=星期日,2021 年 3 月 7 日 04:47:54 GMT; HttpOnly;安全的 X-Powered-By:快递

当我在第 3 步中发出另一个请求时,浏览器不会发送 cookie。

在我尝试过的内容中,我已将 withCredentials 设置为 true 但问题仍然存在

{ withCredentials: true }

有人知道我如何实现这一目标吗?

0 个答案:

没有答案