MERN 项目 | Heroku 不设置客户端 cookie

MERN project | Heroku doesn't set client-side cookie

我的 MERN 项目在我的本地运行良好,但是当我部署它时,我在获取用户时遇到 401 错误。 Heroku 不设置客户端 cookie。然后我先在 google 上搜索,我将我的 cookie-session 更改为 express-session 和一些其他配置,但它在 Heroku 上仍然不起作用。 https://github.com/olcaykaplan/passport_google

科尔斯:

app.use(
  cors({
    origin: "http://localhost:3000",
    credentials: true,
    methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
    allowedHeaders: ['Content-Type', 'Authorization']

  })
);

快车:

    app.use(
  express.session({
    secret: "secret",
    resave: false,
    saveUninitialized: true,
    store: sessionStore,
    proxy: true,
    cookie: {
      httpOnly:true,
      secure: true,
      maxAge: oneDay,
    },
  })
);

如果您的客户端在本地工作, 将安全值更改为 false,删除代理和 sameSite

该项目使用以下 cors 和会话信息运行良好

app.use(
  cors({
    origin: "netlify url",
    credentials: true,
    methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
    allowedHeaders: ['Content-Type', 'Authorization']

  })
);
const oneDay = 1000 * 60 * 60 * 24; // Equals 1 day (1 day * 24 hr/1 day * 60 min/1 hr * 60 sec/1 min * 1000 ms / 1 sec)
app.use(cookieParser("secret"));
app.use(
  express.session({
    secret: "secret",
    resave: false,
    saveUninitialized: true,
    store: sessionStore,
    proxy: true, 
    cookie: {
      sameSite:"none", 
      //path: "/",
      httpOnly:true,
      secure: true, 
      maxAge: oneDay,
    },
  })
);