UNPKG

@sourceloop/ctrl-plane-tenant-management-service

Version:

Tenant Management microservice for SaaS control plane

41 lines 1.7 kB
"use strict"; 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