首页 > 解决方案 > Set-cookie Header 不会为浏览器设置 cookie

问题描述

我正在开发一个基于 React 和 Nodejs 的全栈 Web 应用程序。我将前端部署到 Nelify 并将后端部署到 heroku。它在本地机器上运行良好,但在日志部分部署后出现问题。除了日志记录,一切都运行良好。我猜 res.cookie('w_auth',user.token) 将 jwt 令牌发送到 Web 浏览器,但它没有设置,也没有显示任何错误消息。

这是我将 cookie 发送到浏览器的后端

const cookieOpt = {
  maxAge: 60 * 60 * 1000,
  domain: front-end domain,
  secure: true,
  sameSite: 'None',
}
 user.generateToken((err, user) => {
        if (err) return res.status(400).send(err);;
        res.cookie('w_authExp', user.tokenExp, cookieOpt);
        res.cookie('w_auth', user.token, cookieOpt).status(200).json({
          loginSuccess: true,
          userId: user._id,
        });
      });

前端域是 HTTPS nelify 域。

这是 chrome 开发工具标头中的 set-cookie。

在此处输入图像描述

Set-cookie 标头不会为浏览器设置 cookie。我可以看到警报图标,但奇怪的是,它没有显示任何错误消息。

我试图在其中设置标题 // res.setHeader('Access-Control-Allow-Credentials', true); // res.setHeader('Access-Control-Allow-Origin:', front-domain); 和给出httpOnly选项,cookieOpt 但这些不起作用。有没有人对熨烫有明确的想法?

标签: node.jshttpcookiessetcookiehttpcookie

解决方案


推荐阅读