使用node和react js在浏览器中未设置Cookie

lsmd5eda  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(136)

我用express在node中创建了一个cookie,然后将它发送到用React js创建的前端。用Postman测试服务器的响应我正在取回cookie,但在浏览器(使用Chrome开发者工具)中我看不到cookie。我已经设置了cors和tryed许多选项的基础上,我发现的信息,但没有一个工作。在react方面,我已经在packagejson中设置了我的服务器地址的代理,我也使用了Vite来创建应用程序。当前代码:

const cookierParser = require("cookie-parser");
const app = express();
const cors = require("cors");
app.use(express.json());
app.use(cookierParser());
app.use(
 cors({
  origin: ["http://127.0.0.1:5173"],
  methods: ["POST", "GET"],
  credentials: true,
 })
);

字符串
请求中的cookie:

res.cookie("token", accessToken, {
    httpOnly: true,
    secure: false,
    sameSite: "none",
    maxAge: 3600000,
  });
res.status(200).json({ message: "Logged in" });
  }


前端的Axios:

const loginUser = useMutation({
mutationFn: (user: FormData) => {
  return axios.post("http://localhost:5000/login", user, {
    withCredentials: true,
  });
},
});

fcg9iug3

fcg9iug31#

似乎这个问题只适用于Chrome,我发现你可以更改一些允许接受cookie的选项,然后它们会显示在本地浏览器中:

  • chrome://flags/#same-site-by-default-cookies*

chrome://flags/#cookies-without-same-site-must-be-secure
由于我正在使用它进行开发,并且最终我将使用https,cookie将出现,它没有出现,因为http和Chrome的cookie策略

即使在开发人员工具中看不到cookie,我仍然可以在后端访问它们,我的错误是没有早点检查

相关问题