UNPKG

silvie

Version:

Typescript Back-end Framework

60 lines (56 loc) 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken")); var _blacklist = _interopRequireDefault(require("./blacklist")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } class JWTDriver { constructor(config) { _defineProperty(this, "blacklist", void 0); _defineProperty(this, "config", void 0); this.config = config; this.blacklist = new _blacklist.default(config.blacklist); } /** * Generate a JWT token from the given payload * @param payload */ generate(payload) { return _jsonwebtoken.default.sign(payload, this.config.secret || process.env.APP_KEY); } /** * Validates a given token and returns the payload * @param token */ validate(token) { try { if (!this.blacklist.has(token)) { return _jsonwebtoken.default.verify(token, this.config.secret || process.env.APP_KEY); } return null; } catch (_unused) { return null; } } /** * Invalidates a given token * @param token */ invalidate(token) { try { if (!this.blacklist.has(token)) { this.blacklist.add(token); return true; } return false; } catch (_unused2) { return false; } } } exports.default = JWTDriver;