c9-core/node_modules/connect-architect/connect.session/session-ext.js

43 wiersze
1.1 KiB
JavaScript

var Session = require("./session");
var assert = require("assert");
module.exports = function startup(options, imports, register) {
assert(options.key, "option 'key' is required");
assert(options.secret, "option 'secret' is required");
var connect = imports.connect;
var sessionStore = imports["session-store"];
var sessionOptions = {
store: sessionStore,
key: options.key,
secret: options.secret,
cookie: {}
};
if ("proxy" in options)
sessionOptions.proxy = options.proxy;
var cookie = sessionOptions.cookie;
if ("secure" in options)
cookie.secure = options.secure;
if ("maxAge" in options)
cookie.maxAge = options.maxAge;
var connectModule = imports.connect.getModule();
var sessionRoutes = connectModule();
connect.useSession(sessionRoutes);
sessionRoutes.use(Session(sessionOptions, cookie));
register(null, {
session: {
getKey: function() {
return options.key;
},
get: sessionStore.get,
use: sessionRoutes.use.bind(sessionRoutes)
}
});
};