UNPKG

aroma.js

Version:

A lightweight, feature-rich, and developer-friendly web framework to build modern applications with ease.

28 lines (21 loc) 768 B
const { manageCookies } = require('./cookies'); const sessions = new Map(); function manageSessions(app) { app.use((req, res, next) => { req.cookies = req.cookies; let sessionId = req.cookies['aroma-session']; if (!sessionId || !sessions.has(sessionId)) { sessionId = `${Date.now()}-${Math.random()}`; sessions.set(sessionId, {}); manageCookies(res, 'aroma-session', sessionId, { httpOnly: true, maxAge: 3600 }); } req.session = sessions.get(sessionId); const originalEnd = res.send; res.send = function (...args) { sessions.set(sessionId, req.session); originalEnd.apply(res, args); }; next(); }); } module.exports = { manageSessions, sessions };