【问题标题】: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 被越过时,它将从数据库中删除数据。

    【讨论】:

      猜你喜欢
      • 2018-05-12
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 2010-09-20
      • 1970-01-01
      • 2018-07-07
      • 1970-01-01
      • 2013-01-29
      相关资源
      最近更新 更多