我已经将我的前端(使用 Typescript 反应)和后端(使用 Typescript 的 Nodejs)分别部署到 Heroku。我正在使用express-session
并connect-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 上出现任何问题。任何帮助,将不胜感激。谢谢!