]> git.cworth.org Git - obsolete/notmuch-web/blob - node_modules/express/node_modules/connect/lib/middleware/session/store.js
Install the "express" node module via npm
[obsolete/notmuch-web] / node_modules / express / node_modules / connect / lib / middleware / session / store.js
1
2 /*!
3  * Connect - session - Store
4  * Copyright(c) 2010 Sencha Inc.
5  * Copyright(c) 2011 TJ Holowaychuk
6  * MIT Licensed
7  */
8
9 /**
10  * Module dependencies.
11  */
12
13 var Session = require('./session')
14   , Cookie = require('./cookie')
15   , utils = require('../../utils');
16
17 /**
18  * Initialize abstract `Store`.
19  *
20  * @api private
21  */
22
23 var Store = module.exports = function Store(options){};
24
25 /**
26  * Re-generate the given requests's session.
27  *
28  * @param {IncomingRequest} req
29  * @return {Function} fn
30  * @api public
31  */
32
33 Store.prototype.regenerate = function(req, fn){
34   var self = this;
35   this.destroy(req.sessionID, function(err){
36     self.generate(req);
37     fn(err);
38   });
39 };
40
41 /**
42  * Create session from JSON `sess` data.
43  *
44  * @param {IncomingRequest} req
45  * @param {Object} sess
46  * @return {Session}
47  * @api private
48  */
49
50 Store.prototype.createSession = function(req, sess){
51   var expires = sess.cookie.expires
52     , orig = sess.cookie.originalMaxAge;
53   sess.cookie = new Cookie(sess.cookie);
54   if ('string' == typeof expires) sess.cookie.expires = new Date(expires);
55   sess.cookie.originalMaxAge = orig;
56   req.session = new Session(req, sess);
57   req.session.resetLastAccess();
58   return req.session;
59 };