nestjs session 用不了

  let sessionConf = session({ 
    secret: CONFIGURE.SESSTION_SECRET,
    store: new SessionStore({
      host: CONFIGURE.DB_HOST,
      port: CONFIGURE.DB_PORT,
      user: CONFIGURE.DB_USERNAME,
      password: CONFIGURE.DB_PASSWORD,
      database: CONFIGURE.DB_DATABASE
    }),
    saveUninitialized: true,
    resave: true,
    cookie: { secure: true }
  });
  app.use(sessionConf);

可以保存json到session,但是取不到,
客户端cookie都没有是什么情况

回复
阅读 2.8k
2 个回答
  app.use(session({ 
    secret: CONFIGURE.SESSTION_SECRET,
    store: new SessionStore({
      host: CONFIGURE.DB_HOST,
      port: CONFIGURE.DB_PORT,
      user: CONFIGURE.DB_USERNAME,
      password: CONFIGURE.DB_PASSWORD,
      database: CONFIGURE.DB_DATABASE
    }),
    saveUninitialized: true,
    resave: true,
    cookie: { secure: true }
  }));

这样就行了,不知道为什么,没去看源码

我猜测可能是你的页面用了http协议,没有使用https
如果是这个原因的话,你可以把cookie: { secure: true }这里的secure改为false,这样在http协议下面也能生效。
你如果本地开发是http协议,线上环境是https协议,那么这里你可以根据环境置为truefalse

参考express-session的文档,上面有对secure作出解释。

宣传栏