netpower-js
Version:
A common library that can be used for fe and be
41 lines • 1.49 kB
JavaScript
;
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