如何设置不论是否存在请求30分钟后都进行session过期
要实现这个功能,可以在服务器端设置session的过期时间为30分钟,并在每次请求时更新session,这样不论是否存在请求都会在30分钟后过期。
以下是一个示例代码,使用了Express框架和express-session中间件:
const express = require('express');
const session = require('express-session');
const app = express();
// 设置session
app.use(session({
secret: 'your secret key',
resave: false,
saveUninitialized: false,
cookie: { maxAge: 30 * 60 * 1000 } // 30分钟过期
}));
// 每次请求时更新session
app.use((req, res, next) => {
req.session.nowInMinutes = Math.floor(Date.now() / 60e3);
next();
});
// 设置路由
app.get('/home', (req, res) => {
res.send('Hello, World!');
});
// 启动服务器
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
在上面的代码中,我们使用了cookie: { maxAge: 30 * 60 * 1000 }来设置session的过期时间为30分钟。每次请求时,我们更新了nowInMinutes属性来更新session,这样就能保证session在30分钟内被更新过。
注意,如果用户在30分钟内没有任何请求,session仍然会过期,这是因为浏览器不会向服务器发送任何请求。如果需要保持session的活跃状态,可以考虑使用轮询或长连接等技术来定期向服务器发送请求。
原文地址: https://www.cveoy.top/t/topic/bAv4 著作权归作者所有。请勿转载和采集!