在反应中访问快速会话 cookie

Accessing express session cookies in react

有什么方法可以访问快速会话生成的 cookie 吗? 我已经生成了一个 express-session cookie,如下所示

app.use(
session({
  key: "userId",
  secret: "subscribe",
  resave: false,
  saveUninitialized: false,
  cookie: {
    expires: 60 * 60 * 24,
  },
}) );

现在,如果我尝试使用通用 cookie 或 js-cookie 库从 React 访问 cookie,我将无法访问 cookie。

PS: 在我添加的反应文件中

Axios.defaults.withCredentials = true;

并且在后端文件中我将 cors 配置为

app.use(cors({
origin: ["http://localhost:3000"],
methods: ["GET", "POST"],
credentials: true, }));

但还是不行。

当您使用 express-session 时,发送到前端的唯一 cookie 是 connect.sid。默认情况下,它是 httpOnly,这样你就无法在 React 中访问它。要实现它,您需要将 httpOnly 配置更改为 false。

app.use(
  session({
    key: "userId",
    secret: "subscribe",
    resave: false,
    saveUninitialized: false,
    cookie: {
      expires: 60 * 60 * 24,
      httpOnly: false,
    },
  })
);