我在我的网络应用程序中使用passportjs passport-local进行身份验证(用户名和密码)。
Node.js的
Expressjs
MySQL的
passportjs
服务器关闭时会话被破坏。我需要实现一种机制来为登录用户持久化会话。因此,当服务器启动时,他可以在没有登录过程的情况下访问应用程序。
我无法使用redis进行会话管理,因为我们经常 flushall 来清除缓存数据。
任何建议都将不胜感激。
答案 0 :(得分:1)
var mysql = require('mysql');
var session = require('express-session')
var mysql_store = require('express-mysql-session')(session),
var db_connection = mysql.createPool({
canRetry: true,
database: 'database',
host: 'host',
user: 'user',
password: 'password',
connectionLimit: 100
});
var sessionStore = new mysql_store({
expiration: 60 * 2000
}, db_connection);
app.use(session({
secret: '5151db3f77e7847337000000',
resave: false,
saveUninitialized: false,
store: sessionStore,
cookie: {
expires: new Date(Date.now() + 60 * 2000),
maxAge: 60 * 2000
}
}));
谢谢@robertklep和@Paul