UNPKG

@teamsight/flight

Version:

Lambda life cycles

53 lines 2.18 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const jsonwebtoken = require("jsonwebtoken"); class JsonWebTokenManager { constructor(tokenStore) { this.tokenStore = tokenStore; } create(opts) { console.log("create", opts); const options = { expiresIn: opts.expiresInHours * 60 * 60, algorithm: "HS256", subject: opts.subject, keyid: opts.tokenId, audience: opts.audience }; return jsonwebtoken.sign(opts.payload, opts.secret, options); } createServer() { const opts = { tokenId: "SERVER_SECRET", secret: "3718705b43554bc6a0e2919ef48efa7a", audience: "ts", expiresInHours: 24, payload: {}, subject: "" }; return this.create(opts); } process(token, audience) { return __awaiter(this, void 0, void 0, function* () { console.log("processing token"); const decoded = jsonwebtoken.decode(token, { complete: true }); console.log("decoded", decoded); const keyId = decoded.header.kid; const secret = yield this.tokenStore.getSecretForId(keyId); jsonwebtoken.verify(token, secret, { audience, algorithms: ["HS256"] }); const result = decoded.payload; result.header = decoded.header; return result; }); } } exports.JsonWebTokenManager = JsonWebTokenManager; //# sourceMappingURL=json-web-token-manager.js.map