当服务器部署到heroku时,express会话不持久

Roh*_*has 5 javascript node.js express passport-local passport.js

我用 构建了一个简单的用户身份验证应用程序React, node and Passport JS。打开时localhost,它会成功存储会话并保留用户,但在 Heroku 上部署后,它不会保留会话。

我检查了网络选项卡,发现 SameSite 属性默认设置为lax ,如果客户端想要获取跨站点 Cookie,则应设置为none并且必须设置secure属性。但是当我将 SameSite 设置为 none 并将 secure 设置为 true 时,客户端不会从服务器获取 cookie(例如,响应中不存在 set-cookie 标头)在此输入图像描述

我不知道我哪里做错了。

这是我的服务器 JS

// Middlewares
app.use(express.json());

app.use(
  cors({
    origin: "https://authclient.netlify.app",
    credentials: true,
  })
);

app.use(
  session({
    secret: "secret",
    resave: true,
    saveUninitialized: true,
    cookie: {
      sameSite: "none",
      secure: true,
    },
    store: MongoStore.create({ mongoUrl: dbURI }),
  })
);
app.use(cookieParser("secret"));

app.use(passport.initialize());
app.use(passport.session());
require("./passportConfig")(passport);
//______________________________________

//Routes
app.post("/login", (req, res, next) => {
  passport.authenticate("local", (err, user, info) => {
    if (err) throw err;
    if (!user) res.send(info.message);
    else {
      req.logIn(user, (err) => {
        if (err) throw err;
        res.send("Logged In!");
      });
    }
  })(req, res, next);
});
Run Code Online (Sandbox Code Playgroud)