swint-middleware
Version:
Essential expressJS middlewares and general middleware loader for Swint
38 lines (31 loc) • 682 B
JavaScript
;
var sHelper = require('swint-helper'),
defaultize = sHelper.defaultize,
jwt = require('jsonwebtoken');
module.exports = function(options) {
options = defaultize({
tokenSecret: 'SwintIsForTwins'
}, options);
return function(req, res, next) {
if (!req.headers.hasOwnProperty('authorization')) {
req.token = false;
next();
return;
}
var token = req.headers.authorization.split('Bearer ')[1];
if (!token) {
req.token = false;
next();
return;
}
try {
req.tokenInfo = jwt.verify(token, options.tokenSecret);
req.token = true;
} catch (err) {
req.tokenInfo = {};
req.token = false;
} finally {
next();
}
};
};