UNPKG

netpower-js

Version:

A common library that can be used for fe and be

41 lines 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // eslint-disable-next-line @typescript-eslint/no-var-requires var RandExp = require('randexp'); var otplib_1 = require("otplib"); var SECRET = 'KVKFKRCPNZQUYMLXOVYDSQKJKZDTSRLD'; var reg = /[a-zA-Z]{2,6}-[1-9]{2,4}-[a-zA-Z]{2,6}/; otplib_1.totp.options = { digits: 8, step: 30 }; var Antib = /** @class */ (function () { function Antib() { } Antib.generate = function (secret) { var exp = new RandExp(reg); var key = exp.gen(); var token = otplib_1.totp.generate(secret !== null && secret !== void 0 ? secret : SECRET); return { key: key, value: token }; }; Antib.intercept = function (req, secret) { var pair = Antib.generate(secret !== null && secret !== void 0 ? secret : SECRET); req.headers[pair.key] = pair.value; }; Antib.guard = function (headers, secret) { var key = Object.keys(headers).find(function (k) { var exp = new RegExp(reg, 'i'); var matched = exp.test(k); return matched; }); if (!key) return false; var verified = otplib_1.totp.verify({ token: headers[key], secret: secret !== null && secret !== void 0 ? secret : SECRET }); return verified; }; return Antib; }()); exports.default = Antib; //# sourceMappingURL=index.js.map