Files
ldap-auth-service/lib/sessions.js
2026-08-20 11:50:00 +05:00

39 lines
928 B
JavaScript

'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 };