UNPKG

@lskjs/auth

Version:

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

157 lines (156 loc) 7.1 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); 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 _passportTelegramOfficial = require("passport-telegram-official"); var _BaseStrategy2 = _interopRequireDefault(require("./BaseStrategy")); 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; } } var TelegramStrategy = /*#__PURE__*/function (_BaseStrategy) { (0, _inherits2["default"])(TelegramStrategy, _BaseStrategy); var _super = _createSuper(TelegramStrategy); function TelegramStrategy() { var _this; (0, _classCallCheck2["default"])(this, TelegramStrategy); 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.Strategy = _passportTelegramOfficial.TelegramStrategy; _this.type = 'telegram'; return _this; } (0, _createClass2["default"])(TelegramStrategy, [{ key: "getProviderId", value: function getProviderId() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, username = _ref.username; return username; } }, { key: "passportStrategyCallback", value: function () { var _passportStrategyCallback = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(req, user, done) { var PassportModel, providerId, passport, params; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: PassportModel = this.app.modules.auth.models.PassportModel; providerId = this.getProviderId(user); _context.next = 4; return PassportModel.findOne({ provider: this.providerName, providerId: providerId }); case 4: passport = _context.sent; params = { req: req, user: user, providerId: providerId }; if (passport) { _context.next = 11; break; } _context.next = 9; return this.createPassport(params); case 9: passport = _context.sent; params.isNew = true; case 11: params.passport = passport; _context.next = 14; return this.updatePassport(params); case 14: _context.next = 16; return passport.save(); case 16: params.redirect = this.getSuccessRedirect(params); return _context.abrupt("return", done(null, params)); case 18: case "end": return _context.stop(); } }, _callee, this); })); function passportStrategyCallback(_x, _x2, _x3) { return _passportStrategyCallback.apply(this, arguments); } return passportStrategyCallback; }() }, { key: "getProfile", value: function () { var _getProfile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(user) { return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", { firstName: user.first_name, lastName: user.last_name, avatar: user.photo_url, username: user.username }); case 1: case "end": return _context2.stop(); } }, _callee2); })); function getProfile(_x4) { return _getProfile.apply(this, arguments); } return getProfile; }() }, { key: "updatePassport", value: function () { var _updatePassport = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(_ref2) { var user, passport, UserModel; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: user = _ref2.user, passport = _ref2.passport; /* eslint-disable no-param-reassign */ // console.log('updatePassport EXTENDED', accessToken, refreshToken) ; UserModel = this.app.models.UserModel || this.app.models.User; if (user.hash) passport.token = user.hash; _context3.next = 5; return this.getProfile(user, passport); case 5: passport.profile = _context3.sent; // const data = await module.getPassportData(passport); passport.meta = user; _context3.next = 9; return passport.save(); case 9: _context3.next = 11; return UserModel.updateFromPassport(passport); case 11: return _context3.abrupt("return", passport); case 12: case "end": return _context3.stop(); } }, _callee3, this); })); function updatePassport(_x5) { return _updatePassport.apply(this, arguments); } return updatePassport; }() }]); return TelegramStrategy; }(_BaseStrategy2["default"]); exports["default"] = TelegramStrategy; //# sourceMappingURL=TelegramStrategy.js.map