UNPKG

@jvhaile/loopback4-helper

Version:
52 lines 1.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.JWTService = void 0; const tslib_1 = require("tslib"); const core_1 = require("@loopback/core"); const rest_1 = require("@loopback/rest"); const util_1 = require("util"); const keys_1 = require("../keys"); const jwt = require('jsonwebtoken'); const signAsync = util_1.promisify(jwt.sign); const verifyAsync = util_1.promisify(jwt.verify); let JWTService = class JWTService { constructor(jwtSecret, jwtExpiresIn) { this.jwtSecret = jwtSecret; this.jwtExpiresIn = jwtExpiresIn; } async verifyToken(token) { if (!token) { throw new rest_1.HttpErrors.Unauthorized(`Error verifying token : 'token' is null`); } try { return await verifyAsync(token, this.jwtSecret); } catch (error) { throw new rest_1.HttpErrors.Unauthorized(`Error verifying token : ${error.message}`); } } async generateToken(object) { if (!object) { throw new rest_1.HttpErrors.Unauthorized('Error generating token : userProfile is null'); } let token; try { token = await signAsync(object, this.jwtSecret, { expiresIn: Number(this.jwtExpiresIn), }); } catch (error) { console.log("CREATE TOKEN ERROR", error); throw new rest_1.HttpErrors.Unauthorized(`Error encoding token : ${error}`); } return token; } }; JWTService = tslib_1.__decorate([ core_1.injectable({ scope: core_1.BindingScope.SINGLETON }), tslib_1.__param(0, core_1.inject(keys_1.JWTBindings.TOKEN_SECRET)), tslib_1.__param(1, core_1.inject(keys_1.JWTBindings.TOKEN_EXPIRES_IN)), tslib_1.__metadata("design:paramtypes", [String, String]) ], JWTService); exports.JWTService = JWTService; //# sourceMappingURL=jwt.service.js.map