jwt-token-blacklist
Version:
A module based on jsonwebtoken package with blacklisting in redis or memory.
35 lines (26 loc) • 780 B
JavaScript
;
var createRedisFiler = require("./redis");
var createMemoryFilter = require("./memory");
var _ = require("lodash");
var ms = require("ms");
var jwtBlacklist = function jwtBlacklist(jwt, config) {
if (!_.isObject(jwt)) {
throw new Error("Blacklist jwt object required");
}
if (!_.isObject(config)) {
throw new Error("Blackist config required");
}
if (config.store.type == "redis") {
jwt.filter = createRedisFiler(config);
} else {
jwt.filter = createMemoryFilter(config);
}
jwt.checkBlacklist = function (token) {
return jwt.filter.check(token);
};
jwt.blacklist = function (token) {
return jwt.filter.add(token);
};
return jwt;
};
module.exports = jwtBlacklist;