jwt-token-blacklist
Version:
A module based on jsonwebtoken package with blacklisting in redis or memory.
34 lines (25 loc) • 727 B
JavaScript
const createRedisFiler = require("./redis")
const createMemoryFilter = require("./memory")
const _ = require("lodash")
const ms = require("ms")
const 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 = token => {
return jwt.filter.check(token)
}
jwt.blacklist = token => {
return jwt.filter.add(token)
}
return jwt
}
module.exports = jwtBlacklist