@tree-house/authentication
Version:
Tree House Authentication
33 lines (32 loc) • 1.55 kB
JavaScript
;
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;