@tomei/sso
Version:
Tomei SSO Package
104 lines • 4.16 kB
JavaScript
;
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