【问题标题】:Express.js session lost after about 3min (I Have the same issue ) [duplicate]Express.js 会话在大约 3 分钟后丢失(我有同样的问题)[重复]
【发布时间】:2022-03-03 00:00:28
【问题描述】:
我也面临同样的问题:Express.js session lost after about 3min
但还没有找到任何解决方案。
我的会话代码:
app.use(
session({
secret: 'secret',
resave: false,
saveUninitialized: false,
cookie: {secure: true, maxAge: 1000*60*60*24}
})
);
【问题讨论】:
标签:
javascript
node.js
express
express-session
【解决方案1】:
我通过使用express-mysql-session 包解决了这个问题。
//import
const session = require('express-session');
const MySQLStore = require('express-mysql-session')(session);
let options = {
host: process.env.hostNameDB,
port: 3306,
user: process.env.userNameDB,
password: process.env.passwordDB,
database: process.env.databaseName,
expiration: 1000 * 60 * 60 * 24,
clearExpired: true,
checkExpirationInterval: 1000 * 60 * 60 * 24, //per day db cleaning
};
let sessionStore = new MySQLStore(options);
app.use(session({
key: 'session_cookie_name',
secret: 'session_cookie_secret',
store: sessionStore,
resave: false,
saveUninitialized: false
}));
通过使用此包,您可以正确存储会话数据,然后当checkExpirationInterval 被越过时,它将从数据库中删除数据。