我正在使用NodeJS + express + express-session来在应用程序的任何地方持久化用户ID。
在第一个路由上,我的会话被定义。
但是,从另一个角度来看,我看不到它的价值:
我正在使用以下参数配置
为什么我的userID在请求之间和所有路由上都没有被保留下来?
在第一个路由上,我的会话被定义。
userProfileRoutes.route('/authentication').post((req, res) => {
req.session.userID = 10; //example
console.log(req.session)
}
< p >console.log
的结果是:
Session {
cookie:
{ path: '/',
_expires: null,
originalMaxAge: null,
httpOnly: true,
secure: true },
userID: 10 } // this is the right value
但是,从另一个角度来看,我看不到它的价值:
userProfileRoutes.route('/edit').get(function (req, res) {
console.log('After the nav edit route');
console.log(req.session);
}
并且这个会打印出
Session {
cookie:
{ path: '/',
_expires: null,
originalMaxAge: null,
httpOnly: true,
secure: true }
} // ID VARIABLE DISAPEARS HERE
我正在使用以下参数配置
express-session
:
app.use(session({
secret: 'secret',
proxy: true,
resave: false,
saveUninitialized: true,
withCredentials: true,
cookie: { secure: true },
store: new MongoStore({ mongooseConnection: db })
}));
为什么我的userID在请求之间和所有路由上都没有被保留下来?
app.use
中使用cookie: { secure: true, maxAge: 600000 }
吗?我猜测会话立即过期,因为没有提及maxAge。 - Sumit Sahay