@sourceloop/ctrl-plane-tenant-management-service
Version:
Tenant Management microservice for SaaS control plane
41 lines • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LeadTokenVerifierProvider = void 0;
const tslib_1 = require("tslib");
const jsonwebtoken_1 = require("jsonwebtoken");
const repository_1 = require("@loopback/repository");
const repositories_1 = require("../repositories");
const rest_1 = require("@loopback/rest");
let LeadTokenVerifierProvider = class LeadTokenVerifierProvider {
constructor(leadTokenRepository) {
this.leadTokenRepository = leadTokenRepository;
}
value() {
return async (token) => {
const response = await this.leadTokenRepository.get(token);
if (!response.token) {
throw new rest_1.HttpErrors.Unauthorized();
}
const secret = process.env.JWT_SECRET;
if (!secret) {
throw new Error('JWT_SECRET is not defined in the environment variables.');
}
//sonarignore:start
const data = (0, jsonwebtoken_1.verify)(response.token, secret, {
//sonarignore:end
issuer: process.env.JWT_ISSUER,
algorithms: ['HS256'],
});
return {
token: response.token,
...data,
};
};
}
};
exports.LeadTokenVerifierProvider = LeadTokenVerifierProvider;
exports.LeadTokenVerifierProvider = LeadTokenVerifierProvider = tslib_1.__decorate([
tslib_1.__param(0, (0, repository_1.repository)(repositories_1.LeadTokenRepository)),
tslib_1.__metadata("design:paramtypes", [repositories_1.LeadTokenRepository])
], LeadTokenVerifierProvider);
//# sourceMappingURL=lead-token-verify.provider.js.map