UNPKG

@tomei/sso

Version:
104 lines 4.16 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SessionService = void 0; const redis_service_1 = require("../redis-client/redis.service"); class SessionService { constructor() { this.environment = ''; } static init(redisClient) { return __awaiter(this, void 0, void 0, function* () { const sessionService = new SessionService(); SessionService._RedisService = yield redis_service_1.RedisService.init(redisClient); if (process.env.NODE_ENV == 'test') { sessionService.environment = 'test:'; } else if (process.env.NODE_ENV == 'staging') { sessionService.environment = 'staging:'; } return sessionService; }); } setUserSession(userId_1, sessionData_1) { return __awaiter(this, arguments, void 0, function* (userId, sessionData, sessionName = 'tomei-sid', duration = 60 * 60) { try { const key = `${this.environment}${sessionName}:${userId}`; yield SessionService._RedisService.set(key, sessionData, duration); } catch (error) { throw error; } }); } retrieveUserSession(userId_1) { return __awaiter(this, arguments, void 0, function* (userId, sessionName = 'tomei-sid') { try { const key = `${this.environment}${sessionName}:${userId}`; const stringData = yield SessionService._RedisService.get(key); if (!stringData) return { systemLogins: [], }; return JSON.parse(stringData); } catch (error) { throw error; } }); } refreshDuration(userid_1) { return __awaiter(this, arguments, void 0, function* (userid, sessionName = 'tomei-sid', duration = 60 * 60) { try { const userSession = yield this.retrieveUserSession(userid, sessionName); yield this.setUserSession(userid, userSession, sessionName, duration); } catch (error) { throw error; } }); } setAuthorizationCode(token, value, expire) { return __awaiter(this, void 0, void 0, function* () { try { const key = `${this.environment}tomei-auth-code:${token}`; yield SessionService._RedisService.set(key, value, expire); } catch (error) { throw error; } }); } retrieveAuthorizationCode(token) { return __awaiter(this, void 0, void 0, function* () { try { const key = `${this.environment}tomei-auth-code:${token}`; return yield SessionService._RedisService.get(key); } catch (error) { throw error; } }); } deleteAuthorizationCode(token) { return __awaiter(this, void 0, void 0, function* () { try { const key = `${this.environment}tomei-auth-code:${token}`; yield SessionService._RedisService.del(key); } catch (error) { throw error; } }); } } exports.SessionService = SessionService; //# sourceMappingURL=session.service.js.map