@caidrive/shared
Version:
caidrive.shared.components
72 lines (71 loc) • 1.99 kB
JavaScript
;
/**
*
*
*/
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;