UNPKG

@tree-house/authentication

Version:
33 lines (32 loc) 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.verifyJwt = exports.decodeJwt = exports.createJwt = void 0; const jsonwebtoken_1 = require("jsonwebtoken"); const jwt_config_1 = require("../config/jwt.config"); const createJwt = (payload, options = jwt_config_1.DEFAULT_JWT_CONFIG) => { const { secretOrKey, ...otherOptions } = options; return signJwt(payload, secretOrKey, otherOptions); }; exports.createJwt = createJwt; const decodeJwt = (token, options = jwt_config_1.DEFAULT_JWT_DECODE_OPTIONS) => (0, jsonwebtoken_1.decode)(token, options); exports.decodeJwt = decodeJwt; const signJwt = (payload, secretOrKey, jwtSettings) => new Promise((resolve, reject) => { (0, jsonwebtoken_1.sign)(payload, secretOrKey, jwtSettings, (error, jwtToken) => { if (error || !jwtToken) { return reject(`Something went wrong trying to create a json webtoken. Actual error: ${error}`); } resolve(jwtToken); }); }); const verifyJwt = (token, jwtSettings = jwt_config_1.DEFAULT_JWT_CONFIG) => new Promise((resolve, reject) => { if (token === '') return reject(new Error('JWT token is empty.')); const { secretOrKey, ...otherSettings } = jwtSettings; (0, jsonwebtoken_1.verify)(token, secretOrKey, otherSettings, (error, decoded) => { if (error || !decoded) { return reject(`Something went wrong trying to verify the json webtoken. Actual error: ${error}`); } resolve(decoded); }); }); exports.verifyJwt = verifyJwt;