UNPKG

@lskjs/auth

Version:

LSK.js – auth – module for authorization by login and password and singup through social networks

370 lines (365 loc) 13.5 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.AuthStore = exports.AuthApi = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _initializerDefineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerDefineProperty")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor")); var _initializerWarningHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerWarningHelper")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _Api2 = require("@lskjs/mobx/mobxStores/Api"); var _Store2 = require("@lskjs/mobx/mobxStores/Store"); var _forEach = _interopRequireDefault(require("lodash/forEach")); var _mobx = require("mobx"); var _excluded = ["_id"]; var _class, _descriptor, _descriptor2, _class2; function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable max-classes-per-file */ var AuthApi = /*#__PURE__*/function (_Api) { (0, _inherits2["default"])(AuthApi, _Api); var _super = _createSuper(AuthApi); function AuthApi() { var _this; (0, _classCallCheck2["default"])(this, AuthApi); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _this.baseURL = '/api/auth'; return _this; } (0, _createClass2["default"])(AuthApi, [{ key: "login", value: function login(data) { return this.fetch('/login', { method: 'POST', data: data }); } }, { key: "signup", value: function signup(data) { return this.fetch('/signup', { method: 'POST', data: data }); } }, { key: "silent", value: function silent(data) { return this.fetch('/silent', { method: 'POST', data: data }); } }, { key: "setData", value: function setData(data) { return this.fetch('/setData', { method: 'POST', data: data }); } }, { key: "check", value: function check(data) { return this.fetch('/check', { method: 'POST', data: data }); } }, { key: "restore", value: function restore(data) { return this.fetch('/restore', { method: 'POST', data: data }); } }, { key: "status", value: function status(data) { return this.fetch('/status', { method: 'POST', data: data }); } }, { key: "session", value: function session(data) { return this.fetch('/session', { method: 'POST', data: data }); } }, { key: "info", value: function info(data) { return this.fetch('/info', { method: 'POST', data: data }); } // async getUser(body) { // const res = await this.fetch('/api/module/user/get', { // method: 'POST', // body, // }); // return res.data; // } // async getMyUser(body) { // // } // const res = await this.fetch('/api/user/me', { // method: 'POST', // body, // }); // return res.data; // } // async userEdit(body) { // const res = await this.fetch('/api/module/user/edit', { // method: 'POST', // body, // qs: { _id: body._id }, // }); // return res; // } // async loginPassport(data) { // const res = await this.fetch('/social'login`, { // method: 'POST', // data, // }); // return res.data; // } }]); return AuthApi; }(_Api2.Api); exports.AuthApi = AuthApi; var AuthStore = (_class = (_class2 = /*#__PURE__*/function (_Store) { (0, _inherits2["default"])(AuthStore, _Store); var _super2 = _createSuper(AuthStore); function AuthStore() { var _this2; (0, _classCallCheck2["default"])(this, AuthStore); for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } _this2 = _super2.call.apply(_super2, [this].concat(args)); (0, _initializerDefineProperty2["default"])(_this2, "session", _descriptor, (0, _assertThisInitialized2["default"])(_this2)); (0, _initializerDefineProperty2["default"])(_this2, "sessions", _descriptor2, (0, _assertThisInitialized2["default"])(_this2)); return _this2; } (0, _createClass2["default"])(AuthStore, [{ key: "applySession", value: function () { var _applySession = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) { var _id, props, app, session; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _id = _ref._id, props = (0, _objectWithoutProperties2["default"])(_ref, _excluded); app = this.constructor.app; if (_id) { _context.next = 5; break; } // eslint-disable-next-line no-console app.log.warn('AuthStore.applySession | "session._id" not provided!'); return _context.abrupt("return"); case 5: session = this.sessions.filter(function (s) { return s._id === _id; })[0]; if (!session) { session = { _id: _id }; this.sessions.push(session); } (0, _forEach["default"])(props, function (value, key) { session[key] = value; }); this.session = session; case 9: case "end": return _context.stop(); } }, _callee, this); })); function applySession(_x) { return _applySession.apply(this, arguments); } return applySession; }() }, { key: "getSession", value: function getSession() { return this.session; } }, { key: "getUserId", value: function getUserId() { var session = this.getSession(); return session ? session._id : null; } }, { key: "isAuth", value: function isAuth() { return !!this.getUserId(); } }, { key: "login", value: function () { var _login = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(props) { var _yield$this$construct, session; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return this.constructor.api.login(props); case 2: _yield$this$construct = _context2.sent; session = _yield$this$construct.data; this.applySession(session); return _context2.abrupt("return", session); case 6: case "end": return _context2.stop(); } }, _callee2, this); })); function login(_x2) { return _login.apply(this, arguments); } return login; }() }, { key: "signup", value: function () { var _signup = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(props) { var _yield$this$construct2, session; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return this.constructor.api.signup(props); case 2: _yield$this$construct2 = _context3.sent; session = _yield$this$construct2.data; this.applySession(session); return _context3.abrupt("return", session); case 6: case "end": return _context3.stop(); } }, _callee3, this); })); function signup(_x3) { return _signup.apply(this, arguments); } return signup; }() }, { key: "updateSession", value: function () { var _updateSession = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(props) { var _yield$this$construct3, session; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return this.constructor.api.session(props); case 2: _yield$this$construct3 = _context4.sent; session = _yield$this$construct3.data; this.applySession(session); return _context4.abrupt("return", session); case 6: case "end": return _context4.stop(); } }, _callee4, this); })); function updateSession(_x4) { return _updateSession.apply(this, arguments); } return updateSession; }() }, { key: "logout", value: function () { var _logout = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() { var _this3 = this; return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: this.sessions = this.sessions.filter(function (s) { return s._id !== _this3.session._id; }); // eslint-disable-next-line prefer-destructuring this.session = this.sessions[0]; case 2: case "end": return _context5.stop(); } }, _callee5, this); })); function logout() { return _logout.apply(this, arguments); } return logout; }() }, { key: "getProviders", value: function () { var _getProviders = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() { var _yield$this$construct4, data; return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return this.constructor.api.getInfo(); case 2: _yield$this$construct4 = _context6.sent; data = _yield$this$construct4.data; return _context6.abrupt("return", data.providers || []); case 5: case "end": return _context6.stop(); } }, _callee6, this); })); function getProviders() { return _getProviders.apply(this, arguments); } return getProviders; }() }]); return AuthStore; }(_Store2.Store), _class2.Api = AuthApi, _class2), (_descriptor = (0, _applyDecoratedDescriptor2["default"])(_class.prototype, "session", [_mobx.observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return null; } }), _descriptor2 = (0, _applyDecoratedDescriptor2["default"])(_class.prototype, "sessions", [_mobx.observable], { configurable: true, enumerable: true, writable: true, initializer: function initializer() { return []; } }), (0, _applyDecoratedDescriptor2["default"])(_class.prototype, "applySession", [_mobx.action], Object.getOwnPropertyDescriptor(_class.prototype, "applySession"), _class.prototype)), _class); exports.AuthStore = AuthStore; var _default = AuthStore; exports["default"] = _default; //# sourceMappingURL=AuthStore.js.map