37 lines
1.3 KiB
JavaScript
37 lines
1.3 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.createSessions = void 0;
|
|
const sequelize_1 = require("sequelize");
|
|
const config_1 = require("./config");
|
|
const express_session_1 = __importDefault(require("express-session"));
|
|
const connect_session_sequelize_1 = __importDefault(require("connect-session-sequelize"));
|
|
const config = (0, config_1.getConfig)("sessions");
|
|
const secret = (0, config_1.getSecret)("COOKIE_SECRET");
|
|
const logging = config.orm.logging
|
|
? { logging: console.log, logQueryParameters: true }
|
|
: { logging: false };
|
|
const createSessions = (app) => {
|
|
const sequelize = new sequelize_1.Sequelize({
|
|
...config.orm.settings, ...logging
|
|
});
|
|
const store = new ((0, connect_session_sequelize_1.default)(express_session_1.default.Store))({
|
|
db: sequelize
|
|
});
|
|
if (config.reset_db === true) {
|
|
sequelize.drop().then(() => store.sync());
|
|
}
|
|
else {
|
|
store.sync();
|
|
}
|
|
app.use((0, express_session_1.default)({
|
|
secret, store,
|
|
resave: true, saveUninitialized: false,
|
|
cookie: { maxAge: config.maxAgeHrs * 60 * 60 * 1000,
|
|
sameSite: "strict" }
|
|
}));
|
|
};
|
|
exports.createSessions = createSessions;
|