小编Nic*_*eal的帖子

Cookie 不适用于跨站点配置。我正在使用 React (Next.js) 和 Node.js (Express)

我正在开发一个应用程序,前端使用 React 和 Next.js,后端使用 Node.js 和 Express。我的登录使用cookie,在本地主机中一切都工作得更好,但是当我进行部署时,我有两个应用程序。我的前端应用程序部署在 now.sh 中,我的后端应用程序部署在 Heroku 中。当我尝试在生产中发出登录请求时,一切正常,cookie 位于响应中,并且标头“Set-Cookie”存在。但是我的浏览器(Chrome)没有将 cookie 存储在 Application >> Cookies 中,显然我的前端应用程序不知道 cookie 并且它是未定义的

这是我的代码:

服务器.js

app.use(
  cors({
    credentials: true,
    origin: process.env.CLIENT_URL, // contains the frontend url
    methods: ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"],
    allowedHeaders: ["Content-Type", "Authorization"],
  })
);
Run Code Online (Sandbox Code Playgroud)

当我向前端做出响应时验证路由

return res
      .cookie("token", session.token, {
        httpOnly: true,
        sameSite: "None",
        maxAge: 1209600000,
        secure: process.env.NODE_ENV === "production",
      })
      .status(200)
      .json({
        success: true,
        token: session.token,
        user,
      });
Run Code Online (Sandbox Code Playgroud)

在前端发出请求

const { data } = await Axios.post(login, // …
Run Code Online (Sandbox Code Playgroud)

javascript cookies node.js reactjs next.js

5
推荐指数
1
解决办法
5418
查看次数

标签 统计

cookies ×1

javascript ×1

next.js ×1

node.js ×1

reactjs ×1