会话管理mysql和nodejs

时间:2017-03-22 13:44:52

标签: mysql node.js express passport.js

我在我的网络应用程序中使用passportjs passport-local进行身份验证(用户名和密码)。

技术/框架

Node.js的

Expressjs

MySQL的

passportjs

问题:

服务器关闭时会话被破坏。我需要实现一种机制来为登录用户持久化会话。因此,当服务器启动时,他可以在没有登录过程的情况下访问应用程序。

注意:

我无法使用redis进行会话管理,因为我们经常 flushall 来清除缓存数据。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分: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