0

我只想分享我无法在任何地方找到的跨站点请求(FE 托管在 Firebase 上,BE 托管在 Heroku 上)的 cookie 设置,只是那里的一条信息和其他地方的一条信息。

设置如下:

React.js (Firebase) - 获取后端 Node.js + Express (Heroku) 的请求。使用 cookie-session 和 cors。请看下面的答案。希望它有助于节省您的时间。

4

1 回答 1

0

这对我有用:

const cookieSession = require("cookie-session");
const cookieParser = require("cookie-parser");
const cors = require("cors");

// Set session cookies
  app.set("trust proxy", 1);
  app.use(
    cookieSession({
      name: "session",
      keys: [process.env.COOKIE_KEY],
      maxAge: 86400000,
      sameSite: "none",
      secure: process.env.NODE_ENV === "production",
    })
  );

app.use(cookieParser());

// Set up cors
app.use(
  cors({
    origin: process.env.CLIENT_PATH,
    methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
    credentials: true,
  })
);

从 React 获取请求:

fetch(url,
      {
        method: "GET",
        credentials: "include",
        headers: {
          Accept: "application/json",
          "Content-Type": "application/json",
          "Access-Control-Allow-Credentials": true,
        },
      }
    );
于 2021-01-29T12:13:41.420 回答