@teamsight/flight
Version:
Lambda life cycles
53 lines • 2.18 kB
JavaScript
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
;