UNPKG

@forzalabs/remora

Version:

A powerful CLI tool for seamless data translation.

57 lines (56 loc) 3.05 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const jsonwebtoken_1 = __importDefault(require("jsonwebtoken")); const Affirm_1 = __importDefault(require("../core/Affirm")); // class JWTManagerClass { constructor() { // ATTENTION!! ⚠️ ATTENTION!! ⚠️ ATTENTION!! ⚠️ ATTENTION!! ⚠️ ATTENTION!! ⚠️ ATTENTION!!⚠️ ATTENTION!! // ATTENTION!! The remoteSecretKey is saved in CLEAR text because we are studying a way to not make it visible to the customer. ATTENTION!! // ATTENTION!! ⚠️ ATTENTION!! ⚠️ ATTENTION!! ⚠️ ATTENTION!! ⚠️ ATTENTION!! ⚠️ ATTENTION!!⚠️ ATTENTION!! this.remoraSecretKey = 'violetevergardenisaworkofart'; this.issue = (secret, payload, expirationHours) => { return jsonwebtoken_1.default.sign(payload, secret, { expiresIn: `${expirationHours}h` }); }; this.sign = (apiKeyId, name, scopes) => { (0, Affirm_1.default)(apiKeyId, 'Invalid api key id'); (0, Affirm_1.default)(name, 'Invalid name'); (0, Affirm_1.default)(scopes, 'Invalid scopes'); const JWT_SECRET = process.env.JWT_SECRET; const INSTALLATION_ID = process.env.INSTALLATION_ID; (0, Affirm_1.default)(JWT_SECRET, 'Invalid JWT SECRET'); (0, Affirm_1.default)(INSTALLATION_ID, 'Invalid INSTALLATION ID'); const payload = { apiKeyId: apiKeyId, installationId: INSTALLATION_ID, name: name, scopes: scopes }; return jsonwebtoken_1.default.sign(payload, JWT_SECRET, { expiresIn: '365000d' }); }; this.verify = (token) => { (0, Affirm_1.default)(token, 'Invalid token'); const JWT_SECRET = process.env.JWT_SECRET; (0, Affirm_1.default)(JWT_SECRET, 'Invalid JWT SECRET'); return jsonwebtoken_1.default.verify(token, JWT_SECRET); }; this.verifyAdmin = (token) => { (0, Affirm_1.default)(token, 'Invalid token'); const ADMIN_JWT_SECRET = process.env.ADMIN_JWT_SECRET; (0, Affirm_1.default)(ADMIN_JWT_SECRET, 'Invalid ADMIN JWT SECRET'); return jsonwebtoken_1.default.verify(token, ADMIN_JWT_SECRET); }; this.verifyCLI = (token) => { (0, Affirm_1.default)(token, 'Invalid token'); // ⚠️ ATTENTION!! The remoteSecretKey is saved in clear text because we are studying a way to not make it visible to the customer. ATTENTION!! const REMORA_KEY_SECRET = process.env.REMORA_KEY_SECRET; (0, Affirm_1.default)(REMORA_KEY_SECRET, 'Invalid CLI JWT SECRET'); return jsonwebtoken_1.default.verify(token, REMORA_KEY_SECRET); }; } } const JWTManager = new JWTManagerClass(); exports.default = JWTManager;