UNPKG

server

Version:

A modern and powerful server for Node.js

50 lines (48 loc) 1.11 kB
const modern = require("../../src/modern"); const server = require("../../server"); const session = require("express-session"); server.session = session; const RedisStore = require("connect-redis")(server.session); let sessionMiddleware; module.exports = { name: "session", options: { __root: "secret", resave: { default: false }, saveUninitialized: { default: true }, cookie: { default: {} }, secret: { type: String, inherit: "secret", env: "SESSION_SECRET" }, store: { env: false }, redis: { type: String, inherit: true, env: "REDIS_URL" } }, init: ctx => { if (!ctx.options.session.store && ctx.options.session.redis) { ctx.options.session.store = new RedisStore({ url: ctx.options.session.redis }); } sessionMiddleware = session(ctx.options.session); }, before: ctx => modern(sessionMiddleware)(ctx), launch: ctx => { ctx.io.use(function(socket, next) { sessionMiddleware(socket.request, socket.request.res || {}, next); }); } };