'use strict'; const crypto = require('crypto'); const config = require('./config'); const sessions = new Map(); function createSession(userInfo) { const token = crypto.randomBytes(32).toString('hex'); const expiresAt = Date.now() + config.sessionTTLMinutes * 60 * 1000; sessions.set(token, { expiresAt, user: userInfo }); return token; } function getSession(token) { if (!token) return null; const session = sessions.get(token); if (!session) return null; if (Date.now() > session.expiresAt) { sessions.delete(token); return null; } return session; } function destroySession(token) { if (token) sessions.delete(token); } function cleanup() { const now = Date.now(); for (const [token, session] of sessions.entries()) { if (now > session.expiresAt) sessions.delete(token); } } setInterval(cleanup, 60 * 1000).unref(); module.exports = { createSession, getSession, destroySession };