ваше сообщение коммита
This commit is contained in:
@@ -1,25 +1,46 @@
|
||||
const session = require('express-session');
|
||||
const pgSession = require('connect-pg-simple')(session);
|
||||
const { pool } = require('../db');
|
||||
const db = require('../db');
|
||||
|
||||
const sessionConfig = {
|
||||
store: new pgSession({
|
||||
pool,
|
||||
tableName: 'session',
|
||||
}),
|
||||
secret: process.env.SESSION_SECRET || 'hb3atoken',
|
||||
name: 'sessionId',
|
||||
resave: false,
|
||||
saveUninitialized: true,
|
||||
cookie: {
|
||||
maxAge: 30 * 24 * 60 * 60 * 1000,
|
||||
httpOnly: true,
|
||||
secure: process.env.NODE_ENV === 'production',
|
||||
sameSite: 'lax',
|
||||
path: '/',
|
||||
},
|
||||
};
|
||||
let onPoolChangeCallback = null;
|
||||
|
||||
function setPoolChangeCallback(cb) {
|
||||
onPoolChangeCallback = cb;
|
||||
}
|
||||
|
||||
let sessionMiddleware = createSessionMiddleware();
|
||||
|
||||
function createSessionMiddleware() {
|
||||
return session({
|
||||
store: new pgSession({
|
||||
pool: db.getPool(),
|
||||
tableName: 'session',
|
||||
}),
|
||||
secret: process.env.SESSION_SECRET || 'hb3atoken',
|
||||
name: 'sessionId',
|
||||
resave: false,
|
||||
saveUninitialized: true,
|
||||
cookie: {
|
||||
maxAge: 30 * 24 * 60 * 60 * 1000,
|
||||
httpOnly: true,
|
||||
secure: process.env.NODE_ENV === 'production',
|
||||
sameSite: 'lax',
|
||||
path: '/',
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
function reloadSessionMiddleware() {
|
||||
sessionMiddleware = createSessionMiddleware();
|
||||
if (onPoolChangeCallback) {
|
||||
onPoolChangeCallback();
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
sessionMiddleware: session(sessionConfig),
|
||||
get sessionMiddleware() {
|
||||
return sessionMiddleware;
|
||||
},
|
||||
reloadSessionMiddleware,
|
||||
setPoolChangeCallback,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user