【问题标题】:Session management mysql and nodejs会话管理mysql和nodejs
【发布时间】:2017-08-14 16:10:54
【问题描述】:
我在我的网络应用程序中使用passportjs passport-local 进行身份验证(用户名和密码)。
技术/框架
Node.js
Expressjs
mysql
护照
问题:
服务器宕机时会话被破坏。我需要实现一种机制来为登录用户保留会话。这样当服务器启动时,他无需登录即可访问应用程序。
注意:
我无法使用 redis 进行会话管理,因为我们经常 flushall 清除缓存数据。
任何建议将不胜感激。
【问题讨论】:
标签:
mysql
node.js
express
passport.js
【解决方案1】:
我已经实现express mysql session
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