auth0-sso-login
Version:
A Library to simplify the auth0 sso login process
74 lines (58 loc) • 2.61 kB
JavaScript
;
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;