ParseSession.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. "use strict";
  2. var _Reflect$construct = require("@babel/runtime-corejs3/core-js-stable/reflect/construct");
  3. var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
  4. var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
  5. _Object$defineProperty(exports, "__esModule", {
  6. value: true
  7. });
  8. exports.default = void 0;
  9. var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
  10. var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/typeof"));
  11. var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
  12. var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
  13. var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/inherits"));
  14. var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/possibleConstructorReturn"));
  15. var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/getPrototypeOf"));
  16. var _CoreManager = _interopRequireDefault(require("./CoreManager"));
  17. var _isRevocableSession = _interopRequireDefault(require("./isRevocableSession"));
  18. var _ParseObject2 = _interopRequireDefault(require("./ParseObject"));
  19. var _ParseUser = _interopRequireDefault(require("./ParseUser"));
  20. function _createSuper(Derived) {
  21. var hasNativeReflectConstruct = _isNativeReflectConstruct();
  22. return function () {
  23. var Super = (0, _getPrototypeOf2.default)(Derived),
  24. result;
  25. if (hasNativeReflectConstruct) {
  26. var NewTarget = (0, _getPrototypeOf2.default)(this).constructor;
  27. result = _Reflect$construct(Super, arguments, NewTarget);
  28. } else {
  29. result = Super.apply(this, arguments);
  30. }
  31. return (0, _possibleConstructorReturn2.default)(this, result);
  32. };
  33. }
  34. function _isNativeReflectConstruct() {
  35. if (typeof Reflect === "undefined" || !_Reflect$construct) return false;
  36. if (_Reflect$construct.sham) return false;
  37. if (typeof Proxy === "function") return true;
  38. try {
  39. Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {}));
  40. return true;
  41. } catch (e) {
  42. return false;
  43. }
  44. }
  45. /**
  46. * <p>A Parse.Session object is a local representation of a revocable session.
  47. * This class is a subclass of a Parse.Object, and retains the same
  48. * functionality of a Parse.Object.</p>
  49. *
  50. * @alias Parse.Session
  51. * @augments Parse.Object
  52. */
  53. var ParseSession = /*#__PURE__*/function (_ParseObject) {
  54. (0, _inherits2.default)(ParseSession, _ParseObject);
  55. var _super = _createSuper(ParseSession);
  56. /**
  57. * @param {object} attributes The initial set of data to store in the user.
  58. */
  59. function ParseSession(attributes
  60. /*: ?AttributeMap*/
  61. ) {
  62. var _this;
  63. (0, _classCallCheck2.default)(this, ParseSession);
  64. _this = _super.call(this, '_Session');
  65. if (attributes && (0, _typeof2.default)(attributes) === 'object') {
  66. if (!_this.set(attributes || {})) {
  67. throw new Error("Can't create an invalid Session");
  68. }
  69. }
  70. return _this;
  71. }
  72. /**
  73. * Returns the session token string.
  74. *
  75. * @returns {string}
  76. */
  77. (0, _createClass2.default)(ParseSession, [{
  78. key: "getSessionToken",
  79. value: function ()
  80. /*: string*/
  81. {
  82. var token = this.get('sessionToken');
  83. if (typeof token === 'string') {
  84. return token;
  85. }
  86. return '';
  87. }
  88. }], [{
  89. key: "readOnlyAttributes",
  90. value: function () {
  91. return ['createdWith', 'expiresAt', 'installationId', 'restricted', 'sessionToken', 'user'];
  92. }
  93. /**
  94. * Retrieves the Session object for the currently logged in session.
  95. *
  96. * @param {object} options useMasterKey
  97. * @static
  98. * @returns {Promise} A promise that is resolved with the Parse.Session
  99. * object after it has been fetched. If there is no current user, the
  100. * promise will be rejected.
  101. */
  102. }, {
  103. key: "current",
  104. value: function (options
  105. /*: FullOptions*/
  106. ) {
  107. options = options || {};
  108. var controller = _CoreManager.default.getSessionController();
  109. var sessionOptions = {};
  110. if (options.hasOwnProperty('useMasterKey')) {
  111. sessionOptions.useMasterKey = options.useMasterKey;
  112. }
  113. return _ParseUser.default.currentAsync().then(function (user) {
  114. if (!user) {
  115. return _promise.default.reject('There is no current user.');
  116. }
  117. sessionOptions.sessionToken = user.getSessionToken();
  118. return controller.getSession(sessionOptions);
  119. });
  120. }
  121. /**
  122. * Determines whether the current session token is revocable.
  123. * This method is useful for migrating Express.js or Node.js web apps to
  124. * use revocable sessions. If you are migrating an app that uses the Parse
  125. * SDK in the browser only, please use Parse.User.enableRevocableSession()
  126. * instead, so that sessions can be automatically upgraded.
  127. *
  128. * @static
  129. * @returns {boolean}
  130. */
  131. }, {
  132. key: "isCurrentSessionRevocable",
  133. value: function ()
  134. /*: boolean*/
  135. {
  136. var currentUser = _ParseUser.default.current();
  137. if (currentUser) {
  138. return (0, _isRevocableSession.default)(currentUser.getSessionToken() || '');
  139. }
  140. return false;
  141. }
  142. }]);
  143. return ParseSession;
  144. }(_ParseObject2.default);
  145. _ParseObject2.default.registerSubclass('_Session', ParseSession);
  146. var DefaultController = {
  147. getSession: function (options
  148. /*: RequestOptions*/
  149. )
  150. /*: Promise<ParseSession>*/
  151. {
  152. var RESTController = _CoreManager.default.getRESTController();
  153. var session = new ParseSession();
  154. return RESTController.request('GET', 'sessions/me', {}, options).then(function (sessionData) {
  155. session._finishFetch(sessionData);
  156. session._setExisted(true);
  157. return session;
  158. });
  159. }
  160. };
  161. _CoreManager.default.setSessionController(DefaultController);
  162. var _default = ParseSession;
  163. exports.default = _default;