From 171d8b6635d9ba27b0aab64355805bdf41344a45 Mon Sep 17 00:00:00 2001 From: Douglas Christopher Wilson Date: Fri, 29 Jan 2016 13:26:00 -0500 Subject: [PATCH 1/5] 1.13.1 --- HISTORY.md | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 727834eb..ffb63d71 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,5 @@ -unreleased -========== +1.13.1 / 2016-01-29 +=================== * deps: parseurl@~1.3.1 - perf: enable strict mode diff --git a/package.json b/package.json index 8b945f2e..b9e15281 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "express-session", - "version": "1.13.0", + "version": "1.13.1", "description": "Simple session middleware for Express", "author": "TJ Holowaychuk (http://tjholowaychuk.com)", "contributors": [ From 3ff18b75c1a635f27052cee8ea3c670f0f965551 Mon Sep 17 00:00:00 2001 From: QianJin2013 Date: Sun, 21 Feb 2016 03:41:22 +0900 Subject: [PATCH 2/5] Fix bug: cookie.expires not modified even if maxAge set and rolling:true see https://github.com/expressjs/session/issues/276 --- index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/index.js b/index.js index 0de7c62f..caea3c2e 100644 --- a/index.js +++ b/index.js @@ -203,6 +203,7 @@ function session(options){ return; } + cookie.originalMaxAge > 0 && (cookie.expires = new Date(Date.now() + cookie.originalMaxAge)); setcookie(res, name, req.sessionID, secrets[0], cookie.data); }); From cf99f9a9dd74cc509fdd1ab2b2a4a83eb90c95d3 Mon Sep 17 00:00:00 2001 From: q Date: Sun, 21 Feb 2016 16:17:24 +0900 Subject: [PATCH 3/5] beautify source style --- index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index caea3c2e..f6e9553d 100644 --- a/index.js +++ b/index.js @@ -203,7 +203,10 @@ function session(options){ return; } - cookie.originalMaxAge > 0 && (cookie.expires = new Date(Date.now() + cookie.originalMaxAge)); + if (cookie.originalMaxAge > 0) { + cookie.expires = new Date(Date.now() + cookie.originalMaxAge); + } + setcookie(res, name, req.sessionID, secrets[0], cookie.data); }); From f389ffa6e93969fe45c988ae53e01c8e4eca1d86 Mon Sep 17 00:00:00 2001 From: q Date: Sun, 21 Feb 2016 16:20:00 +0900 Subject: [PATCH 4/5] add test case for https://github.com/expressjs/session/issues/276 --- test/session.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/test/session.js b/test/session.js index 682cb8d0..65f64977 100644 --- a/test/session.js +++ b/test/session.js @@ -2115,6 +2115,54 @@ describe('session()', function(){ }) }) }) + + describe('cookie.expire', function(){ + this.timeout(86400000); + var val; + + var app = express() + .use(session({ secret: 'keyboard cat', cookie: { maxAge: 10000 }})) + .use(function(req, res, next){ + req.session.count = req.session.count || 0; + req.session.count++; + res.write(req.session.count.toString()); //this is very important. If use res.end(...) then no bug + res.end(''); + }); + + it('should be Now + .maxAge (first test)', function(done){ + request(app) + .get('/') + .expect(200, '1', function (err, res) { + var a = new Date(expires(res)) + var b = new Date + var delta = a.valueOf() - b.valueOf() + + val = cookie(res).split(';')[0]; + + assert.ok(delta > 9000 && delta <= 10000, "cookie.expire is too short as expected"); + done(); + }); + }); + + it('should be Now + .maxAge (second test)', function(done){ + setTimeout(function() { + request(app) + .get('/') + .set('Cookie', val) + .expect(200, '2', function (err, res) { + var a = new Date(expires(res)) + var b = new Date + var delta = a.valueOf() - b.valueOf() + + var thisCookie = cookie(res).split(';')[0]; + assert.equal(thisCookie, val, "cookie value itself should be same"); + + assert.ok(delta > 9000 && delta <= 10000, "cookie.expire is too short as expected"); + done(); + }); + }, 6000); + }); + }); }) function cookie(res) { From 272cad69fae7e44576e0c2d6bcb73cc72bdefbaf Mon Sep 17 00:00:00 2001 From: q Date: Sun, 21 Feb 2016 19:18:13 +0900 Subject: [PATCH 5/5] change test case timeout value to 12000 ms (from unnecessary 1 day) --- test/session.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/session.js b/test/session.js index 65f64977..4a1b9c32 100644 --- a/test/session.js +++ b/test/session.js @@ -2117,7 +2117,7 @@ describe('session()', function(){ }) describe('cookie.expire', function(){ - this.timeout(86400000); + this.timeout(12000); var val; var app = express()