@nsilly/auth
Version:
JSON Web Token Authentication for nSilly framework
93 lines (69 loc) • 2.57 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.AuthOrGuestMiddleware = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _support = require("@nsilly/support");
var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken"));
var _lodash = _interopRequireDefault(require("lodash"));
var _Auth = require("./Facades/Auth");
var _exceptions = require("@nsilly/exceptions");
var AuthOrGuestMiddleware = (0, _support.AsyncMiddleware)(
/*#__PURE__*/
function () {
var _ref = (0, _asyncToGenerator2.default)(
/*#__PURE__*/
_regenerator.default.mark(function _callee(req, res, next) {
var authorization, access_token, decoded;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
authorization = req.headers.authorization;
if (authorization) {
_context.next = 4;
break;
}
throw new _exceptions.Exception('Token not found', 1000);
case 4:
access_token = authorization.split(' ')[1];
if (!(_lodash.default.isNil(access_token) || access_token === 'null' || access_token === 'undefined')) {
_context.next = 7;
break;
}
throw new _exceptions.Exception('Token not found', 1000);
case 7:
_context.next = 9;
return _jsonwebtoken.default.verify(access_token, process.env.JWT_SECRET);
case 9:
decoded = _context.sent;
if (decoded) {
_context.next = 12;
break;
}
throw new _exceptions.Exception('Token invalid', 4002);
case 12:
_context.next = 14;
return _Auth.Auth.login(decoded.data);
case 14:
next();
_context.next = 20;
break;
case 17:
_context.prev = 17;
_context.t0 = _context["catch"](0);
next();
case 20:
case "end":
return _context.stop();
}
}
}, _callee, this, [[0, 17]]);
}));
return function (_x, _x2, _x3) {
return _ref.apply(this, arguments);
};
}());
exports.AuthOrGuestMiddleware = AuthOrGuestMiddleware;