All files / dist/src/Authentication Token.js

0% Statements 0/21
0% Branches 0/3
0% Functions 0/12
0% Lines 0/21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60                                                                                                                       
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class Token {
    constructor(_headerEncoded, _payloadEncoded) {
        this._headerEncoded = _headerEncoded;
        this._payloadEncoded = _payloadEncoded;
    }
    get _tokenPayload() {
        try {
            return JSON.parse(Buffer.from(this._payloadEncoded, 'base64').toString());
        }
        catch (err) {
            return {
                aud: '',
                exp: 0,
                iat: 0,
                iss: '',
                name: '',
                nbf: 0,
                sub: '',
            };
        }
    }
    fromEpoch(epoch) {
        const d = new Date(0);
        d.setUTCSeconds(epoch);
        return d;
    }
    get Username() {
        return this._tokenPayload.name;
    }
    GetPayload() {
        return this._tokenPayload;
    }
    get ExpirationTime() {
        return this.fromEpoch(this._tokenPayload.exp);
    }
    get NotBefore() {
        return this.fromEpoch(this._tokenPayload.nbf);
    }
    IsValid() {
        const now = new Date();
        return this._tokenPayload && this.ExpirationTime > now && this.NotBefore < now;
    }
    get IssuedDate() {
        return this.fromEpoch(this._tokenPayload.iat);
    }
    toString() {
        return `${this._headerEncoded}.${this._payloadEncoded}`;
    }
    static FromHeadAndPayload(headAndPayload) {
        const [head, payload] = headAndPayload.split('.');
        return new Token(head, payload);
    }
    static CreateEmpty() {
        return new Token('', '');
    }
}
exports.Token = Token;
//# sourceMappingURL=Token.js.map