我只想分享我无法在任何地方找到的跨站点请求(FE 托管在 Firebase 上,BE 托管在 Heroku 上)的 cookie 设置,只是那里的一条信息和其他地方的一条信息。
设置如下:
React.js (Firebase) - 获取后端 Node.js + Express (Heroku) 的请求。使用 cookie-session 和 cors。请看下面的答案。希望它有助于节省您的时间。
我只想分享我无法在任何地方找到的跨站点请求(FE 托管在 Firebase 上,BE 托管在 Heroku 上)的 cookie 设置,只是那里的一条信息和其他地方的一条信息。
设置如下:
React.js (Firebase) - 获取后端 Node.js + Express (Heroku) 的请求。使用 cookie-session 和 cors。请看下面的答案。希望它有助于节省您的时间。
这对我有用:
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,
},
}
);