2

我已经将我的前端(使用 Typescript 反应)和后端(使用 Typescript 的 Nodejs)分别部署到 Heroku。我正在使用express-sessionconnect-redis维护用户会话,为此我使用了一个名为 Redistogo 的外部 Redis 服务。

当我在本地运行我的应用程序时,req.session存在并且在登录期间对用户进行身份验证时,我可以将用户的会话设置为req.session.user. 但是,当以完全相同的方式在 Heroku 上运行后端时req.session,仍然存在undefined.

if(process.env.NODE_ENV === 'production') {
      this.app.set('trust proxy', 1) 
      const rtg   = url.parse(process.env.REDISTOGO_URL);
      const redisClient = redis.createClient(rtg.port, rtg.hostname);
      redisClient.auth(rtg.auth.split(":")[1]);


      this.app.use(session({
        name: 'random_pur',
        store: new RedisStore({
            redisClient
        }),
        secret: 'meow',
        resave: true,
        saveUninitialized: false,
        cookie: {
          secure: false,
          sameSite: false,
          maxAge: 36000000,
          httpOnly: false,
        }
      }));
    }

所以我不确定我在这里缺少什么 - 它不会在 localhost 上出现任何问题。任何帮助,将不胜感激。谢谢!

4

0 回答 0