Node.js 快速会话滚动不工作
我已经看到了很多关于这方面的问题,但没有一个答案解决了我的问题。我使用的是Node.js 快速会话滚动不工作,node.js,session,express,express-session,Node.js,Session,Express,Express Session,我已经看到了很多关于这方面的问题,但没有一个答案解决了我的问题。我使用的是express会话,我希望只要用户在coookie MaxAge过期之前发出请求,用户会话就保持活动状态,因此我使用的是滚动选项。对于测试,我将MaxAge过期时间设置为30秒 如果我在两次点击之间只需几秒钟就可以浏览,则会话似乎保持活动状态。但是,如果我发出请求,然后等待20秒,会话将过期,我将注销,即使我在30秒内还行 以下是我如何配置express会话: var express = require('express'
express会话
,我希望只要用户在coookie MaxAge过期之前发出请求,用户会话就保持活动状态,因此我使用的是滚动
选项。对于测试,我将MaxAge过期时间设置为30秒
如果我在两次点击之间只需几秒钟就可以浏览,则会话似乎保持活动状态。但是,如果我发出请求,然后等待20秒,会话将过期,我将注销,即使我在30秒内还行
以下是我如何配置express会话
:
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的时间内至少单击一次
我还需要做些什么才能让它正常工作吗
- 建议将
设置为true,但这并没有改变我的结果resave
- 建议将httpOnly设置为false,但对我没有任何更改
- 我尝试了
设置为true和not set,结果相同(我的站点是https)secure
- 我尝试将
设置为true和false,结果相同saveUninitialized
- 快递:4.12.1
- 快速会议:1.10.3
- cookie解析器:1.3.5
connect.sid
cookie,通常每次请求都会重置30秒,但偶尔,当我发出请求时,它不会改变。果不其然,再等15秒,会话就过期了,我就退出了
我记录了一个有关
快速会话
的问题:尝试重新保存
到真
。您将其用作false
“这篇文章建议将resave设置为true,但它没有改变我的结果。”您是否在没有MongoStore和使用内存会话的情况下对其进行了测试?我还没有尝试过,升级到最新版本已经解决了问题