@midware/mauth
Version:
A simple auth middleware for Node.js
39 lines • 1.48 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
// file deepcode ignore no-any: any needed
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
const key_1 = __importDefault(require("./key"));
const crypt_1 = __importDefault(require("../config/crypt"));
class JsonWebToken {
constructor(crypt) {
this.crypt = crypt;
}
static getInstance(crypt) {
if (!this._instance) {
this._instance = new this(crypt);
}
return this._instance;
}
async verify(token, key) {
return new Promise(async (resolve, reject) => {
try {
key = key ? key : await key_1.default.getInstance(this.crypt).key();
jsonwebtoken_1.default.verify(token, key, (error, data) => error ? reject(error) : resolve(data));
//! TODO: check permissions
}
catch (error) {
reject(error);
}
});
}
async sign(payload, type, key) {
return jsonwebtoken_1.default.sign(payload, key ? key : await key_1.default.getInstance(this.crypt).privateKey(), type !== 'SERVICE'
? crypt_1.default.signOptions
: crypt_1.default.signServiceOptions);
}
}
exports.default = JsonWebToken;
//# sourceMappingURL=jsonWebToken.js.map