@bitblit/epsilon
Version:
Tiny adapter to simplify building API gateway Lambda APIS
43 lines • 2.17 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.JwtRatchetLocalWebTokenManipulator = void 0;
const string_ratchet_1 = require("@bitblit/ratchet/common/string-ratchet");
const require_ratchet_1 = require("@bitblit/ratchet/common/require-ratchet");
/**
* Service for handling jwt tokens
*/
class JwtRatchetLocalWebTokenManipulator {
constructor(_jwtRatchet, _issuer) {
this._jwtRatchet = _jwtRatchet;
this._issuer = _issuer;
require_ratchet_1.RequireRatchet.notNullOrUndefined(_jwtRatchet, '_jwtRatchet');
require_ratchet_1.RequireRatchet.notNullOrUndefined(string_ratchet_1.StringRatchet.trimToNull(_issuer), '_issuer');
}
get jwtRatchet() {
return this._jwtRatchet;
}
get issuer() {
return this._issuer;
}
extractTokenFromAuthorizationHeader(header) {
return __awaiter(this, void 0, void 0, function* () {
let tokenString = string_ratchet_1.StringRatchet.trimToEmpty(header);
if (tokenString.toLowerCase().startsWith('bearer ')) {
tokenString = tokenString.substring(7);
}
const validated = !!tokenString ? yield this.jwtRatchet.decodeToken(tokenString, 1 /* ExpiredJwtHandling.THROW_EXCEPTION */) : null;
return validated;
});
}
}
exports.JwtRatchetLocalWebTokenManipulator = JwtRatchetLocalWebTokenManipulator;
//# sourceMappingURL=jwt-ratchet-local-web-token-manipulator.js.map