【问题标题】:Session management mysql and nodejs会话管理mysql和nodejs
【发布时间】:2017-08-14 16:10:54
【问题描述】:

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

技术/框架

Node.js

Expressjs

mysql

护照

问题:

服务器宕机时会话被破坏。我需要实现一种机制来为登录用户保留会话。这样当服务器启动时,他无需登录即可访问应用程序。

注意:

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

任何建议将不胜感激。

【问题讨论】:

  • 您可以选择另一个会话存储here
  • 发布您的会话配置代码

标签: 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 2018-04-23
    相关资源
    最近更新 更多