UNPKG

auth0-sso-login

Version:

A Library to simplify the auth0 sso login process

74 lines (58 loc) 2.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _uuid = require("uuid"); var _windowInteraction = _interopRequireDefault(require("./window-interaction")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var tokenExpiryManager = /*#__PURE__*/function () { function tokenExpiryManager() { _classCallCheck(this, tokenExpiryManager); this.tokenExpiresAt = null; this.tokenRefreshHandle = null; this.sessionId = null; } _createClass(tokenExpiryManager, [{ key: "getRemainingMillisToTokenExpiry", value: function getRemainingMillisToTokenExpiry() { return this.tokenExpiresAt ? this.tokenExpiresAt - Date.now() : 0; } }, { key: "scheduleTokenRefresh", value: function scheduleTokenRefresh(authResult, refreshFunction) { var expiresInMs = authResult.expiresIn * 1000; var remainingMs = expiresInMs / 3 * 2; this.tokenExpiresAt = remainingMs + Date.now(); if (this.tokenRefreshHandle) { _windowInteraction["default"].clearTimeout(this.tokenRefreshHandle); } this.tokenRefreshHandle = _windowInteraction["default"].setTimeout(refreshFunction, remainingMs); } }, { key: "cancelTokenRefresh", value: function cancelTokenRefresh() { this.sessionId = null; this.tokenExpiresAt = null; if (this.tokenRefreshHandle) { _windowInteraction["default"].clearTimeout(this.tokenRefreshHandle); this.tokenRefreshHandle = null; } } }, { key: "createSession", value: function createSession() { this.sessionId = (0, _uuid.v4)(); } }, { key: "authorizationSessionExists", value: function authorizationSessionExists() { return !!this.sessionId; } }]); return tokenExpiryManager; }(); exports["default"] = tokenExpiryManager;