UNPKG

@arc-publishing/sdk-identity

Version:
62 lines 2.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.heartbeat = exports.extendSession = void 0; var tslib_1 = require("tslib"); var constants_1 = require("./constants"); var JSONResponseHandler_1 = tslib_1.__importDefault(require("../serviceHelpers/JSONResponseHandler")); var SingletonFetch_1 = tslib_1.__importDefault(require("../serviceHelpers/SingletonFetch")); var userIdentity_1 = require("./userIdentity"); var identity_1 = tslib_1.__importDefault(require("./identity")); var jwt_1 = require("../utils/jwt"); function extendSession() { if (identity_1.default.userIdentity.refreshToken && identity_1.default.userIdentity.accessToken && !(0, jwt_1.isJwtExpired)(identity_1.default.userIdentity.refreshToken)) { return (0, SingletonFetch_1.default)("".concat(identity_1.default.apiOrigin, "/identity/public/v1/auth/token"), { method: 'POST', headers: constants_1.headers, body: JSON.stringify({ token: identity_1.default.userIdentity.refreshToken, grantType: 'refresh-token' }) }, 'extendSession') .then(JSONResponseHandler_1.default) .then(function (json) { if ((0, userIdentity_1.isUserIdentity)(json)) { var userIdentity = tslib_1.__assign(tslib_1.__assign({}, identity_1.default.userIdentity), { accessToken: json.accessToken, refreshToken: json.refreshToken || identity_1.default.userIdentity.refreshToken }); identity_1.default.userIdentity = userIdentity; return identity_1.default.userIdentity; } else { if (json.code) { console.warn("".concat(constants_1.logPrefix, " code:\"").concat(json.code, "\", message:\"").concat(json.message, "\"")); } identity_1.default.clearSession(); throw json; } }); } else if (identity_1.default.userIdentity.refreshToken && (0, jwt_1.isJwtExpired)(identity_1.default.userIdentity.refreshToken)) { identity_1.default.clearSession(); throw new Error("".concat(constants_1.logPrefix, " Refresh token is expired")); } else { identity_1.default.clearSession(); throw new Error("".concat(constants_1.logPrefix, " No refresh token found for this session")); } } exports.extendSession = extendSession; function heartbeat() { if (identity_1.default.userIdentity.refreshToken && identity_1.default.userIdentity.accessToken && ((0, jwt_1.isJwtExpired)(identity_1.default.userIdentity.accessToken) || !(0, jwt_1.jwtHasExp)(identity_1.default.userIdentity.accessToken))) { return identity_1.default.extendSession(); } else { return Promise.resolve(identity_1.default.userIdentity); } } exports.heartbeat = heartbeat; //# sourceMappingURL=extendSession.js.map