UNPKG

7.04 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = void 0;
9
10var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
12var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
14var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
16var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
18var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
20var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
22var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
23
24var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
26var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
27
28var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
29
30var _axios = _interopRequireDefault(require("axios"));
31
32var _get3 = _interopRequireDefault(require("lodash/get"));
33
34var _passportFacebook = _interopRequireDefault(require("passport-facebook"));
35
36var _BaseStrategy2 = _interopRequireDefault(require("./BaseStrategy"));
37
38var _excluded = ["id"];
39
40function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
41
42function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
43
44function _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); }; }
45
46function _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; } }
47
48var FacebookStrategy = /*#__PURE__*/function (_BaseStrategy) {
49 (0, _inherits2["default"])(FacebookStrategy, _BaseStrategy);
50
51 var _super = _createSuper(FacebookStrategy);
52
53 function FacebookStrategy() {
54 var _this;
55
56 (0, _classCallCheck2["default"])(this, FacebookStrategy);
57
58 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
59 args[_key] = arguments[_key];
60 }
61
62 _this = _super.call.apply(_super, [this].concat(args));
63 _this.Strategy = _passportFacebook["default"].Strategy;
64 _this.type = 'facebook';
65 return _this;
66 }
67
68 (0, _createClass2["default"])(FacebookStrategy, [{
69 key: "checkToken",
70 value: function () {
71 var _checkToken = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(accessToken) {
72 var _yield$axios, data, providerId, params;
73
74 return _regenerator["default"].wrap(function _callee$(_context) {
75 while (1) {
76 switch (_context.prev = _context.next) {
77 case 0:
78 _context.next = 2;
79 return (0, _axios["default"])("https://graph.facebook.com/me?access_token=".concat(accessToken));
80
81 case 2:
82 _yield$axios = _context.sent;
83 data = _yield$axios.data;
84 providerId = data.id, params = (0, _objectWithoutProperties2["default"])(data, _excluded);
85 return _context.abrupt("return", _objectSpread(_objectSpread({}, params), {}, {
86 providerId: providerId
87 }));
88
89 case 6:
90 case "end":
91 return _context.stop();
92 }
93 }
94 }, _callee);
95 }));
96
97 function checkToken(_x) {
98 return _checkToken.apply(this, arguments);
99 }
100
101 return checkToken;
102 }()
103 }, {
104 key: "getInfo",
105 value: function getInfo() {
106 return _objectSpread(_objectSpread({}, (0, _get2["default"])((0, _getPrototypeOf2["default"])(FacebookStrategy.prototype), "getInfo", this).call(this)), {}, {
107 settings: "https://developers.facebook.com/apps/".concat(this.config.clientId, "/dashboard/")
108 });
109 }
110 }, {
111 key: "getProfile",
112 value: function () {
113 var _getProfile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(passport) {
114 var fields, _yield$axios2, data;
115
116 return _regenerator["default"].wrap(function _callee2$(_context2) {
117 while (1) {
118 switch (_context2.prev = _context2.next) {
119 case 0:
120 //eslint-disable-line
121 fields = ['gender', 'picture.type(large)', 'domains', 'about', 'link', 'first_name', 'last_name', 'name', 'birthday'];
122 _context2.next = 3;
123 return (0, _axios["default"])("https://graph.facebook.com/me?access_token=".concat(passport.token, "&fields=").concat(fields.join(',')), {
124 timeout: 3000
125 });
126
127 case 3:
128 _yield$axios2 = _context2.sent;
129 data = _yield$axios2.data;
130 return _context2.abrupt("return", _objectSpread(_objectSpread({}, data), {}, {
131 firstName: data.first_name,
132 lastName: data.last_name,
133 avatar: (0, _get3["default"])(data, 'picture.data.url'),
134 domain: data.id
135 }));
136
137 case 6:
138 case "end":
139 return _context2.stop();
140 }
141 }
142 }, _callee2);
143 }));
144
145 function getProfile(_x2) {
146 return _getProfile.apply(this, arguments);
147 }
148
149 return getProfile;
150 }()
151 }]);
152 return FacebookStrategy;
153}(_BaseStrategy2["default"]);
154
155exports["default"] = FacebookStrategy;
156//# sourceMappingURL=FacebookStrategy.js.map
\No newline at end of file