快递滚动不起作用

时间:2016-11-28 06:32:23

标签: node.js session express express-session

我已经看到很多关于此的问题,但没有一个答案解决了我的问题。我使用express-session并且我希望用户会话保持活动,只要用户在coookie MaxAge到期之前发出请求,因此我使用rolling选项。对于测试,我将MaxAge到期时间设置为30秒。

如果我在点击之间只浏览几秒钟,则会话似乎保持活跃状态​​。然而,如果我提出请求然后等待20秒,会话到期并且即使我在30秒内完成也会退出。

以下是express-session配置的方式:

var express = require('express')
, cookieParser = require('cookie-parser')
, session = require('express-session');

var app = express();
app.use(cookieParser(EXPRESS_SECRET));
app.use(
    session({
        cookie: { maxAge : 30000 },     //in milliseconds. 30 seconds for testing
        resave: false,                  //Save the session to store even if it hasn't changed
        rolling: true,                  //Reset the cookie Max-Age on every request
        saveUninitialized: false,       //Don't create a session for anonymous users
        secret: EXPRESS_SECRET,
        store: new MongoStore({ mongooseConnection: mongooseConnection })
    })
);

我的期望是,将rolling设置为true应该允许我持续保持登录状态,只要我在少于每个MaxAge中点击至少一次。

我还需要做些什么才能让这个工作吗?

  • This post建议将resave设为true,但不会改变我的结果。
  • This post建议将httpOnly设置为false,但对我没有任何更改
  • 我尝试将secure设置为true而未设置,结果相同(我的网站为https)
  • 我尝试将saveUninitialized设置为true和false,结果相同。
  • express:4.12.1
  • express-session:1.10.3
  • cookie-parser:1.3.5

更新

太奇怪了,我每隔15秒就会点击同一页面,并监控Chrome浏览器工具中的connect.sid Cookie,并且每次请求时都会重置30秒,但不时,它不会# 39;当我提出请求时改变。果然等了15秒,会议结束了,我已经退出了。

我已使用express-sessionhttps://github.com/expressjs/session/issues/391

记录了问题

0 个答案:

没有答案