You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.0 KiB
65 lines
2.0 KiB
|
|
var connect = require('../')
|
|
var http = require('http');
|
|
|
|
var hour = 60 * 60 * 1000;
|
|
|
|
// maxAge session without the rolling option
|
|
// it doesn't update the maxAge value
|
|
|
|
http.createServer(connect()
|
|
.use(connect.cookieParser())
|
|
.use(connect.session({ secret : 'keyboard cat',
|
|
key : 'NoRolling.sid',
|
|
cookie : { maxAge: hour }}))
|
|
.use(connect.favicon())
|
|
.use(clear)
|
|
.use(change)
|
|
.use(counter)
|
|
).listen(3000);
|
|
console.log('port 3000: without rolling, session CANNOT be changed to browser session');
|
|
|
|
// maxAge session with the rolling option
|
|
// it always updates the maxAge value
|
|
|
|
http.createServer(connect()
|
|
.use(connect.cookieParser())
|
|
.use(connect.session({ secret : 'keyboard cat',
|
|
key : 'Rolling.sid',
|
|
cookie : { maxAge: hour },
|
|
rolling : true}))
|
|
.use(connect.favicon())
|
|
.use(clear)
|
|
.use(change)
|
|
.use(counter)
|
|
).listen(3001);
|
|
console.log('port 3001: with rolling, session CAN be changed to browser session');
|
|
|
|
function clear(req, res, next) {
|
|
if ('/clear' != req.url) return next();
|
|
req.session.regenerate(function(err){});
|
|
res.statusCode = 302;
|
|
res.setHeader('Location', '/');
|
|
res.end();
|
|
}
|
|
function change(req, res, next) {
|
|
if ('/change' != req.url) return next();
|
|
req.session.cookie.maxAge = req.session.cookie.maxAge ? null : hour;
|
|
res.statusCode = 302;
|
|
res.setHeader('Location', '/');
|
|
res.end();
|
|
}
|
|
function counter(req, res) {
|
|
req.session.count = req.session.count || 0;
|
|
var n = req.session.count++;
|
|
var expiration = req.session.cookie.maxAge
|
|
? req.session.cookie.maxAge + "msec"
|
|
: "browser session";
|
|
res.end('<p>Expiration: ' + expiration + '</p>'
|
|
+ '<p>Hits: ' + n + '</p>'
|
|
+ '<p><a href="/clear">clear session</a></p>'
|
|
+ (req.session.cookie.maxAge
|
|
? '<p><a href="/change">Change to Browser Session</a></p>'
|
|
: '<p><a href="/change">Change to maxAge Session</a></p>'));
|
|
}
|