【问题标题】:session not persisting with express-session in mobile website移动网站中的会话不与快速会话保持一致
【发布时间】:2018-05-11 13:12:10
【问题描述】:

我有一个使用 NodeJS、Express 和 AngularJS 构建的网络应用程序。我正在使用 express-session 来维护登录会话。

在桌面浏览器中,登录会话按预期持续存在,即使在浏览器关闭后也是如此,但是

从移动设备访问网站时,用户会获得 每次关闭移动浏览器时自动注销。

示例代码如下:

let express = require('express');
let app = express();
let session = require('express-session');
let MongoStore = require('connect-mongo')(session);

app.use(session({
    secret: config.sessionSecret,
    name: "test",
    store: new MongoStore({
        url: mongoConnectionUrl,
        ttl: 2 * 24 * 60 * 60, // = 2 days. Default 
        autoRemove: 'native'
    }),
    resave: true,
    saveUninitialized: true
}));

如何在手机浏览器关闭时停止用户在手机中的自动注销?

面临上述问题的网站:https://ayan.work/notes

【问题讨论】:

    标签: angularjs node.js express session express-session


    【解决方案1】:

    只需使用以下代码进行配置:

    app.use(session({
        secret: config.sessionSecret,
        name: "test",
        cookie: { maxAge: 3 * 24 * 60 * 60 * 1000 }, //user won't have to login for 3 days
        store: new (require('express-sessions'))({
            storage: 'mongodb',
            instance: mongoose, // optional 
            host: 'localhost', // optional 
            port: 27017, // optional 
            db: 'database name', // optional 
            collection: 'sessions', // optional 
            expire: 86400 // optional 
        })
    }));
    

    maxAge 选项将在那里维护 cookie 中的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 2020-04-07
      • 2012-11-05
      • 2019-10-13
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      相关资源
      最近更新 更多