UNPKG

@caidrive/shared

Version:

caidrive.shared.components

72 lines (71 loc) 1.99 kB
"use strict"; /** * * */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.JWT = void 0; const jsonwebtoken_1 = __importDefault(require("jsonwebtoken")); const rand_token_1 = require("rand-token"); const core_1 = require("../core"); const { JWT_KEY, JWT_TOKEN_LONGEVITY } = process.env; class JWT { /** * */ static decodeJWT(token) { /** * */ try { const decoded = jsonwebtoken_1.default.verify(token, JWT_KEY); return core_1.Result.ok(decoded); } catch (err) { return core_1.Result.fail(err === null || err === void 0 ? void 0 : err.message); } } /** * */ static signJWT(props) { const claims = { id: props.id, email: props.email, roles: props.roles, }; try { const nanGuard = core_1.Guard.Numeric(JWT_TOKEN_LONGEVITY, "JWT:signJWT:tokenLongevity"); if (nanGuard.isFailure) { return core_1.Result.fail(nanGuard.error.toString()); } return core_1.Result.ok(jsonwebtoken_1.default.sign(claims, JWT_KEY, { expiresIn: Number.parseInt(JWT_TOKEN_LONGEVITY), })); } catch (error) { return core_1.Result.fail(error === null || error === void 0 ? void 0 : error.message); } } /*** * */ static createRefreshToken() { try { /** * */ return core_1.Result.ok((0, rand_token_1.uid)(256)); } catch (error) { /** * */ return core_1.Result.fail(` Failed to genrate token ${error === null || error === void 0 ? void 0 : error.message}`); } } } exports.JWT = JWT;