首页 > 解决方案 > 无法使用 axios 和 Express Session 获取会话 cookie。但能够与邮递员

问题描述

我已经能够找到无数关于此的讨论主题,但似乎没有一个解决方案对我有用

本质上,我有一个反应客户端,它使用 axios 向使用快速会话的节点 js 后端发出请求

我能够登录应用程序并获得成功的响应。但是,响应标头不包含 connect.sid 字段。在检查 chromes devtools -> application -> cookies 文件夹时,我没有看到该站点的任何 cookie

我还尝试使用 IE 和 Firefox 进行测试,结果相同

现在,当通过邮递员发出相同的登录请求时,我可以看到标头中的 connect.sid 和 cookie 选项卡中的 cookie 本身。

在我目前的情况下,客户端和服务器都运行在 localhost 上,客户端运行在 3000 端口,服务器运行在 3001 端口。一个区别是客户端是 http,服务器是 https

根据我的在线研究,这些是建议的常见事情,在我的情况下都不起作用

import axios from "axios";
axios.defaults.withCredentials = true;
    app.use(session({
      secret: 'BSL3562904BVAIHBP53VRFSF',
      resave: false,
      saveUninitialized: false,
      rolling: true,
      cookie: {secure: true, httpOnly: false }
    }))
    app.use(cors({
      credentials: true,
      origin: "http://localhost:3000"
    }));

对于原始值,我尝试了“localhost”和“127.0.0.1”</p>

app.set('trust proxy', 1);// trust first proxy

这不仅仅是无法在客户端检索 cookie 的问题,因为我可以创建 cookie 并将其附加到响应并查看它们。只是没有出现的会话cookie

在这一点上,我有点头撞墙。因此,任何帮助或建议将不胜感激!

标签: node.jsreactjsexpressaxiosexpress-session

解决方案


推荐阅读