UNPKG

@pvway/alpha-oas

Version:

Alpha OAuth Service by p.v.Way

61 lines 9.38 kB
export class AlphaSessionData { static rememberMeFieldName = 'alphaRememberMe'; static accessTokenFieldName = 'alphaAccessToken'; static receptionTsFieldName = 'alphaReceptionTs'; static expirationTsFieldName = 'alphaExpirationTs'; rememberMe; accessToken; /** timestamp of token reception in ms */ receptionTs; /** timestamp of token expiration in ms */ expirationTs; get isExpiredOrExpiring() { const nowTs = new Date().getTime(); return this.expirationTs - nowTs < 60000; } constructor(rememberMe, accessToken, receptionTs, // timestamp of token reception in ms expirationTs) { this.rememberMe = rememberMe; this.accessToken = accessToken; this.receptionTs = receptionTs; this.expirationTs = expirationTs; } // expiresIn is expressed in seconds static getTimestamps(expiresIn) { const receptionTs = new Date().getTime(); const expirationTs = receptionTs + expiresIn * 1000; return { receptionTs, expirationTs }; } static retrieve() { const rmString = sessionStorage .getItem(AlphaSessionData.rememberMeFieldName); if (rmString == null) return null; const rm = rmString === 'true'; const at = sessionStorage .getItem(AlphaSessionData.accessTokenFieldName) ?? ''; const rTsString = sessionStorage .getItem(AlphaSessionData.receptionTsFieldName) ?? '0'; const rTs = parseInt(rTsString, 10); const xTsString = sessionStorage .getItem(AlphaSessionData.expirationTsFieldName) ?? '0'; const xTs = parseInt(xTsString, 10); return new AlphaSessionData(rm, at, rTs, xTs); } static clear() { sessionStorage.removeItem(AlphaSessionData.rememberMeFieldName); sessionStorage.removeItem(AlphaSessionData.accessTokenFieldName); sessionStorage.removeItem(AlphaSessionData.receptionTsFieldName); sessionStorage.removeItem(AlphaSessionData.expirationTsFieldName); } store() { sessionStorage.setItem(AlphaSessionData.rememberMeFieldName, this.rememberMe.toString()); sessionStorage.setItem(AlphaSessionData.accessTokenFieldName, this.accessToken); sessionStorage.setItem(AlphaSessionData.receptionTsFieldName, this.receptionTs.toString()); sessionStorage.setItem(AlphaSessionData.expirationTsFieldName, this.expirationTs.toString()); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxwaGEtc2Vzc2lvbi1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWxwaGEtb2FzL3NyYy9saWIvYWxwaGEtc2Vzc2lvbi1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxnQkFBZ0I7SUFFbkIsTUFBTSxDQUFVLG1CQUFtQixHQUFHLGlCQUFpQixDQUFDO0lBQ3hELE1BQU0sQ0FBVSxvQkFBb0IsR0FBRyxrQkFBa0IsQ0FBQztJQUMxRCxNQUFNLENBQVUsb0JBQW9CLEdBQUcsa0JBQWtCLENBQUM7SUFDMUQsTUFBTSxDQUFVLHFCQUFxQixHQUFHLG1CQUFtQixDQUFDO0lBRXBFLFVBQVUsQ0FBVTtJQUNwQixXQUFXLENBQVM7SUFDcEIseUNBQXlDO0lBQ3pDLFdBQVcsQ0FBUztJQUNwQiwwQ0FBMEM7SUFDMUMsWUFBWSxDQUFTO0lBRXJCLElBQUksbUJBQW1CO1FBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDM0MsQ0FBQztJQUVELFlBQ0UsVUFBbUIsRUFDbkIsV0FBbUIsRUFDbkIsV0FBbUIsRUFBRSxxQ0FBcUM7SUFDMUQsWUFBb0I7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVELG9DQUFvQztJQUNwQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQWlCO1FBSXBDLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekMsTUFBTSxZQUFZLEdBQUcsV0FBVyxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDcEQsT0FBTztZQUNMLFdBQVc7WUFDWCxZQUFZO1NBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUTtRQUNiLE1BQU0sUUFBUSxHQUFHLGNBQWM7YUFDNUIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakQsSUFBSSxRQUFRLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRWxDLE1BQU0sRUFBRSxHQUFHLFFBQVEsS0FBSyxNQUFNLENBQUM7UUFFL0IsTUFBTSxFQUFFLEdBQUcsY0FBYzthQUN0QixPQUFPLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEQsTUFBTSxTQUFTLEdBQUcsY0FBYzthQUM3QixPQUFPLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDekQsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVwQyxNQUFNLFNBQVMsR0FBRyxjQUFjO2FBQzdCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUMxRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDVixjQUFjLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDaEUsY0FBYyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2pFLGNBQWMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNqRSxjQUFjLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELEtBQUs7UUFDSCxjQUFjLENBQUMsT0FBTyxDQUNwQixnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEUsY0FBYyxDQUFDLE9BQU8sQ0FDcEIsZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNELGNBQWMsQ0FBQyxPQUFPLENBQ3BCLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN0RSxjQUFjLENBQUMsT0FBTyxDQUNwQixnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBBbHBoYVNlc3Npb25EYXRhIHtcclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgcmVtZW1iZXJNZUZpZWxkTmFtZSA9ICdhbHBoYVJlbWVtYmVyTWUnO1xyXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGFjY2Vzc1Rva2VuRmllbGROYW1lID0gJ2FscGhhQWNjZXNzVG9rZW4nO1xyXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHJlY2VwdGlvblRzRmllbGROYW1lID0gJ2FscGhhUmVjZXB0aW9uVHMnO1xyXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGV4cGlyYXRpb25Uc0ZpZWxkTmFtZSA9ICdhbHBoYUV4cGlyYXRpb25Ucyc7XHJcblxyXG4gIHJlbWVtYmVyTWU6IGJvb2xlYW47XHJcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcclxuICAvKiogdGltZXN0YW1wIG9mIHRva2VuIHJlY2VwdGlvbiBpbiBtcyAqL1xyXG4gIHJlY2VwdGlvblRzOiBudW1iZXI7XHJcbiAgLyoqIHRpbWVzdGFtcCBvZiB0b2tlbiBleHBpcmF0aW9uIGluIG1zICovXHJcbiAgZXhwaXJhdGlvblRzOiBudW1iZXI7XHJcblxyXG4gIGdldCBpc0V4cGlyZWRPckV4cGlyaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgbm93VHMgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgIHJldHVybiB0aGlzLmV4cGlyYXRpb25UcyAtIG5vd1RzIDwgNjAwMDA7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHJlbWVtYmVyTWU6IGJvb2xlYW4sXHJcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nLFxyXG4gICAgcmVjZXB0aW9uVHM6IG51bWJlciwgLy8gdGltZXN0YW1wIG9mIHRva2VuIHJlY2VwdGlvbiBpbiBtc1xyXG4gICAgZXhwaXJhdGlvblRzOiBudW1iZXIpIHtcclxuICAgIHRoaXMucmVtZW1iZXJNZSA9IHJlbWVtYmVyTWU7XHJcbiAgICB0aGlzLmFjY2Vzc1Rva2VuID0gYWNjZXNzVG9rZW47XHJcbiAgICB0aGlzLnJlY2VwdGlvblRzID0gcmVjZXB0aW9uVHM7XHJcbiAgICB0aGlzLmV4cGlyYXRpb25UcyA9IGV4cGlyYXRpb25UcztcclxuICB9XHJcblxyXG4gIC8vIGV4cGlyZXNJbiBpcyBleHByZXNzZWQgaW4gc2Vjb25kc1xyXG4gIHN0YXRpYyBnZXRUaW1lc3RhbXBzKGV4cGlyZXNJbjogbnVtYmVyKToge1xyXG4gICAgcmVjZXB0aW9uVHM6IG51bWJlcixcclxuICAgIGV4cGlyYXRpb25UczogbnVtYmVyXHJcbiAgfSB7XHJcbiAgICBjb25zdCByZWNlcHRpb25UcyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgY29uc3QgZXhwaXJhdGlvblRzID0gcmVjZXB0aW9uVHMgKyBleHBpcmVzSW4gKiAxMDAwO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcmVjZXB0aW9uVHMsXHJcbiAgICAgIGV4cGlyYXRpb25Uc1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyByZXRyaWV2ZSgpOiBBbHBoYVNlc3Npb25EYXRhIHwgbnVsbCB7XHJcbiAgICBjb25zdCBybVN0cmluZyA9IHNlc3Npb25TdG9yYWdlXHJcbiAgICAgIC5nZXRJdGVtKEFscGhhU2Vzc2lvbkRhdGEucmVtZW1iZXJNZUZpZWxkTmFtZSk7XHJcbiAgICBpZiAocm1TdHJpbmcgPT0gbnVsbCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgY29uc3Qgcm0gPSBybVN0cmluZyA9PT0gJ3RydWUnO1xyXG5cclxuICAgIGNvbnN0IGF0ID0gc2Vzc2lvblN0b3JhZ2VcclxuICAgICAgLmdldEl0ZW0oQWxwaGFTZXNzaW9uRGF0YS5hY2Nlc3NUb2tlbkZpZWxkTmFtZSkgPz8gJyc7XHJcblxyXG4gICAgY29uc3QgclRzU3RyaW5nID0gc2Vzc2lvblN0b3JhZ2VcclxuICAgICAgLmdldEl0ZW0oQWxwaGFTZXNzaW9uRGF0YS5yZWNlcHRpb25Uc0ZpZWxkTmFtZSkgPz8gJzAnO1xyXG4gICAgY29uc3QgclRzID0gcGFyc2VJbnQoclRzU3RyaW5nLCAxMCk7XHJcblxyXG4gICAgY29uc3QgeFRzU3RyaW5nID0gc2Vzc2lvblN0b3JhZ2VcclxuICAgICAgLmdldEl0ZW0oQWxwaGFTZXNzaW9uRGF0YS5leHBpcmF0aW9uVHNGaWVsZE5hbWUpID8/ICcwJztcclxuICAgIGNvbnN0IHhUcyA9IHBhcnNlSW50KHhUc1N0cmluZywgMTApO1xyXG5cclxuICAgIHJldHVybiBuZXcgQWxwaGFTZXNzaW9uRGF0YShybSwgYXQsIHJUcywgeFRzKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjbGVhcigpOiB2b2lkIHtcclxuICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oQWxwaGFTZXNzaW9uRGF0YS5yZW1lbWJlck1lRmllbGROYW1lKTtcclxuICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oQWxwaGFTZXNzaW9uRGF0YS5hY2Nlc3NUb2tlbkZpZWxkTmFtZSk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKEFscGhhU2Vzc2lvbkRhdGEucmVjZXB0aW9uVHNGaWVsZE5hbWUpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShBbHBoYVNlc3Npb25EYXRhLmV4cGlyYXRpb25Uc0ZpZWxkTmFtZSk7XHJcbiAgfVxyXG5cclxuICBzdG9yZSgpOiB2b2lkIHtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgIEFscGhhU2Vzc2lvbkRhdGEucmVtZW1iZXJNZUZpZWxkTmFtZSwgdGhpcy5yZW1lbWJlck1lLnRvU3RyaW5nKCkpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgQWxwaGFTZXNzaW9uRGF0YS5hY2Nlc3NUb2tlbkZpZWxkTmFtZSwgdGhpcy5hY2Nlc3NUb2tlbik7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICBBbHBoYVNlc3Npb25EYXRhLnJlY2VwdGlvblRzRmllbGROYW1lLCB0aGlzLnJlY2VwdGlvblRzLnRvU3RyaW5nKCkpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgQWxwaGFTZXNzaW9uRGF0YS5leHBpcmF0aW9uVHNGaWVsZE5hbWUsIHRoaXMuZXhwaXJhdGlvblRzLnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19