Broswer 没有保存我从登录响应中获取的 Cookies

问题描述 投票:0回答:1

我正在使用nodejs和jwt令牌系统,登录后我成功获取了我的cookie作为响应,但浏览器没有将它们保存在存储cookie中。这就是我发送 cookie 的方式:-

return res
.status(200)
.cookie("accessToken", accessToken, options)
.cookie("refreshToken", refreshToken, options)
.json(
new ApiResponse(
200,
{
user: loggedInUser,
accessToken,
refreshToken,
},
"user logged In successfully",
),
); 

这里的选项是:-

const options = {
httpOnly: true,
secure: true,
}; 

然后你可以看到我收到了cookie作为响应:- cookies i am getting in response但没有保存在浏览器中cookies not saved in browser

我不知道如何解决这个问题

reactjs node.js cookies
1个回答
0
投票

此行为背后可能有多种原因,但您可以尝试一些方法来调试/解决问题:

  1. 我看到您已将

    secure
    属性设置为
    true
    ,这意味着 浏览器只会通过
    HTTPS
    连接发送 cookie。如果 您正在使用
    HTTP
    (不是 HTTPS)进行本地测试,浏览器不会 由于安全限制,请保存 cookie。

    解决此问题的一种方法是确保您正在访问您的服务器 如果您已将 secure 属性设置为 true,则通过 HTTPS,否则请尝试 将其修改为

    false

  2. 默认情况下,cookie 是为当前域设置的。如果你的服务器 与您的前端运行在不同的域或子域上, 由于同源,浏览器可能不会保存cookie 政策。

    现在要解决此问题,请将

    domain
    属性显式设置为 托管您的前端的正确域或子域。

  3. 默认情况下,为当前

    URL
    的路径设置cookie。如果 您的前端托管在与后端不同的
    path
    上,即 浏览器可能无法正确保存 cookie。要验证这一点,请设置
    path
    明确属性到前端所在的正确路径 已主持。

  4. 最后,检查您的开发环境,确保您没有

    testing
    处于
    incognito
    模式,因为某些浏览器可能不会在私有模式下保存cookie。

  5. 浏览器

    extensions
    (如
    ad blockers
    privacy tools
    )可能会干扰 cookie 保存。尝试禁用任何可能干扰 cookie 行为的浏览器扩展。

const options = {
  httpOnly: true,
  secure: true, // saves cookies on https connections
  domain: 'yourdomain.com', // define domain explicitly
  path: '/yourpath', // define path explicitly
};
© www.soinside.com 2019 - 2024. All rights reserved.