ParseSession.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
  7. var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
  8. var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
  9. var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
  10. var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
  11. var _CoreManager = _interopRequireDefault(require("./CoreManager"));
  12. var _isRevocableSession = _interopRequireDefault(require("./isRevocableSession"));
  13. var _ParseObject2 = _interopRequireDefault(require("./ParseObject"));
  14. var _ParseUser = _interopRequireDefault(require("./ParseUser"));
  15. function _createSuper(Derived) {
  16. var hasNativeReflectConstruct = _isNativeReflectConstruct();
  17. return function () {
  18. var Super = (0, _getPrototypeOf2.default)(Derived),
  19. result;
  20. if (hasNativeReflectConstruct) {
  21. var NewTarget = (0, _getPrototypeOf2.default)(this).constructor;
  22. result = Reflect.construct(Super, arguments, NewTarget);
  23. } else {
  24. result = Super.apply(this, arguments);
  25. }
  26. return (0, _possibleConstructorReturn2.default)(this, result);
  27. };
  28. }
  29. function _isNativeReflectConstruct() {
  30. if (typeof Reflect === "undefined" || !Reflect.construct) return false;
  31. if (Reflect.construct.sham) return false;
  32. if (typeof Proxy === "function") return true;
  33. try {
  34. Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
  35. return true;
  36. } catch (e) {
  37. return false;
  38. }
  39. }
  40. var ParseSession = function (_ParseObject) {
  41. (0, _inherits2.default)(ParseSession, _ParseObject);
  42. var _super = _createSuper(ParseSession);
  43. function ParseSession(attributes) {
  44. var _this;
  45. (0, _classCallCheck2.default)(this, ParseSession);
  46. _this = _super.call(this, '_Session');
  47. if (attributes && typeof attributes === 'object') {
  48. if (!_this.set(attributes || {})) {
  49. throw new Error("Can't create an invalid Session");
  50. }
  51. }
  52. return _this;
  53. }
  54. (0, _createClass2.default)(ParseSession, [{
  55. key: "getSessionToken",
  56. value: function () {
  57. var token = this.get('sessionToken');
  58. if (typeof token === 'string') {
  59. return token;
  60. }
  61. return '';
  62. }
  63. }], [{
  64. key: "readOnlyAttributes",
  65. value: function () {
  66. return ['createdWith', 'expiresAt', 'installationId', 'restricted', 'sessionToken', 'user'];
  67. }
  68. }, {
  69. key: "current",
  70. value: function (options) {
  71. options = options || {};
  72. var controller = _CoreManager.default.getSessionController();
  73. var sessionOptions = {};
  74. if (options.hasOwnProperty('useMasterKey')) {
  75. sessionOptions.useMasterKey = options.useMasterKey;
  76. }
  77. return _ParseUser.default.currentAsync().then(function (user) {
  78. if (!user) {
  79. return Promise.reject('There is no current user.');
  80. }
  81. sessionOptions.sessionToken = user.getSessionToken();
  82. return controller.getSession(sessionOptions);
  83. });
  84. }
  85. }, {
  86. key: "isCurrentSessionRevocable",
  87. value: function () {
  88. var currentUser = _ParseUser.default.current();
  89. if (currentUser) {
  90. return (0, _isRevocableSession.default)(currentUser.getSessionToken() || '');
  91. }
  92. return false;
  93. }
  94. }]);
  95. return ParseSession;
  96. }(_ParseObject2.default);
  97. _ParseObject2.default.registerSubclass('_Session', ParseSession);
  98. var DefaultController = {
  99. getSession: function (options) {
  100. var RESTController = _CoreManager.default.getRESTController();
  101. var session = new ParseSession();
  102. return RESTController.request('GET', 'sessions/me', {}, options).then(function (sessionData) {
  103. session._finishFetch(sessionData);
  104. session._setExisted(true);
  105. return session;
  106. });
  107. }
  108. };
  109. _CoreManager.default.setSessionController(DefaultController);
  110. var _default = ParseSession;
  111. exports.default = _default;