Sha256: 46bca5852a66277ee94d4e028f7baa8d5882aff313dbde92cbdd9dc0b591ad82

Contents?: true

Size: 1.96 KB

Versions: 17

Compression:

Stored size: 1.96 KB

Contents

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>'));
}

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
hooch-0.4.2 jasmine/node_modules/karma/node_modules/connect/examples/rollingSession.js
hooch-0.4.1 jasmine/node_modules/karma/node_modules/connect/examples/rollingSession.js
hooch-0.4.0 jasmine/node_modules/karma/node_modules/connect/examples/rollingSession.js
hooch-0.3.0 jasmine/node_modules/karma/node_modules/connect/examples/rollingSession.js
hooch-0.2.1 jasmine/node_modules/karma/node_modules/connect/examples/rollingSession.js
hooch-0.2.0 jasmine/node_modules/karma/node_modules/connect/examples/rollingSession.js
hooch-0.1.0 jasmine/node_modules/karma/node_modules/connect/examples/rollingSession.js
hooch-0.0.8 jasmine/node_modules/karma/node_modules/connect/examples/rollingSession.js
hooch-0.0.7 jasmine/node_modules/karma/node_modules/connect/examples/rollingSession.js
hooch-0.0.6 jasmine/node_modules/karma/node_modules/connect/examples/rollingSession.js
entangled-0.0.16 spec/dummy/public/node_modules/karma/node_modules/connect/examples/rollingSession.js
entangled-0.0.15 spec/dummy/public/node_modules/karma/node_modules/connect/examples/rollingSession.js
entangled-0.0.14 spec/dummy/public/node_modules/karma/node_modules/connect/examples/rollingSession.js
entangled-0.0.13 spec/dummy/public/node_modules/karma/node_modules/connect/examples/rollingSession.js
entangled-0.0.12 spec/dummy/public/node_modules/karma/node_modules/connect/examples/rollingSession.js
entangled-0.0.11 spec/dummy/public/node_modules/karma/node_modules/connect/examples/rollingSession.js
entangled-0.0.10 spec/dummy/public/node_modules/karma/node_modules/connect/examples/rollingSession.js