mirror of
https://github.com/abrendan/MicDropMessages.git
synced 2025-06-17 21:25:00 +02:00
50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
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);
|
|
});
|
|
}
|
|
};
|