我用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,
});
},
});
型
1条答案
按热度按时间fcg9iug31#
似乎这个问题只适用于Chrome,我发现你可以更改一些允许接受cookie的选项,然后它们会显示在本地浏览器中:
chrome://flags/#cookies-without-same-site-must-be-secure
由于我正在使用它进行开发,并且最终我将使用https,cookie将出现,它没有出现,因为http和Chrome的cookie策略
即使在开发人员工具中看不到cookie,我仍然可以在后端访问它们,我的错误是没有早点检查