UNPKG

@nsilly/auth

Version:

JSON Web Token Authentication for nSilly framework

93 lines (69 loc) 2.57 kB
"use strict"; 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;