背景:在用express框架做登录权限,处理会话机制时踩了一个坑,session设置时间后访问接口时间不会顺延重新计算,困扰了半天时间,最后看知悉看了一下API然后发现了具体的问题,废话不多说直接上解决后的源码
app.use(session({
secret: 'keyboardcat',
name: 'token', //这里的name值得是cookie的name,默认cookie的name是:connect.sid
rolling: true,
cookie: {maxAge: 10000 }, //设置maxAge是10000ms,即10s后session和相应的cookie失效过期
resave: true,
saveUninitialized: false
}));
resave: 是否允许 session 重新设置,要保证 session 有操作的时候必须设置这个属性为 true。
rolling: 是否按照原设定的 maxAge 值重设 session 同步到 cookie 中,要保证 session 有操作的时候必须设置这个属性为true。
saveUninitialized: 是否设置 session 在存储容器中可以给修改。
如何想要访问页面接口时顺延session会话时长,就必须将resave、rolling设置为true,同时saveUninitialized设置为false允许修改