@arc-publishing/sdk-identity
Version:
JS Identity SDK for working with Identity API
62 lines • 2.97 kB
JavaScript
;
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