首先来看看我定义sessin的地方,在server.js中 代码如下:
app.use(session({
cookie: {maxAge: 60000 * 20}, // 20 minutes
secret: "test",
store: new MongoStore({
db: "user"
}),
resave: true,
saveUninitialized: true,
}));
然后再 请求根目录的时候 设置了一个session:
app.get('/',function(req,res,next){
req.session.username="admin";
res.render('main.html');
});
我设置了20分钟的过期时间,可是结果不是我想要的。 看看输出日志
[2014-09-15 09:39:29.040] [INFO] dateFileLog - urlcontent_info
[2014-09-15 09:39:29.041] [INFO] dateFileLog - session{"cookie":{"originalMaxAge":1200000,"expires":"2014-09-15T01:59:06.506Z","httpOnly":true,"path":"/"},"username":"admin"}
[2014-09-15 09:41:08.380] [INFO] dateFileLog - urlset
[2014-09-15 09:41:08.380] [INFO] dateFileLog - session{"cookie":{"originalMaxAge":1200000,"expires":"2014-09-15T01:59:29.377Z","httpOnly":true,"path":"/"},"username":"admin"}
[2014-09-15 09:41:37.148] [INFO] dateFileLog - urlcontent_info
[2014-09-15 09:41:37.148] [INFO] dateFileLog - session{"cookie":{"originalMaxAge":1200000,"expires":"2014-09-15T02:01:30.278Z","httpOnly":true,"path":"/"},"username":"admin"}
为什么 expires 对应的时间 在每次请求的时候会改变呢?
7 回复
@hc2014 我的理解是,session object过期后会从用户浏览器的session里消失,post的时候session object就不会被传到后台。 后台可以检测req.session里有没有要的session object。没有的话,就启动相应的session失效处理。