@arc-publishing/sdk-identity
Version:
JS Identity SDK for working with Identity API
51 lines • 2.45 kB
JavaScript
import { __assign, __awaiter, __generator } from "tslib";
import { headers as defaultHeaders, PROFILE_STORAGE_KEY_EXPIRED_TIME } from './constants';
import Identity from './identity';
import { isUserIdentity } from './userIdentity';
import JSONResponseHandler from '../serviceHelpers/JSONResponseHandler';
export default function signInWithOIDC(code, state) {
return __awaiter(this, void 0, void 0, function () {
var headers, getParams;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
headers = __assign({}, defaultHeaders);
if (!(Identity.userIdentity &&
Identity.userIdentity.accessToken &&
Identity.userIdentity.refreshToken)) return [3, 2];
return [4, Identity.heartbeat()];
case 1:
_a.sent();
headers['Authorization'] = "Bearer ".concat(Identity.userIdentity.accessToken);
_a.label = 2;
case 2:
getParams = function () {
var params = {
code: code
};
if (state) {
params = __assign(__assign({}, params), { state: state });
}
return new URLSearchParams(params).toString();
};
return [2, fetch("".concat(Identity.apiOrigin, "/identity/public/v2/oidc/signin?").concat(getParams()), {
method: 'GET',
headers: __assign({}, headers)
})
.then(JSONResponseHandler)
.then(function (json) {
localStorage.removeItem(PROFILE_STORAGE_KEY_EXPIRED_TIME);
if (isUserIdentity(json)) {
Identity.userIdentity = json;
window.postMessage({ type: 'ARC_LOGIN_SUCCESS', grantType: 'OIDC' }, '*');
return Identity.userIdentity;
}
else {
throw json;
}
})];
}
});
});
}
//# sourceMappingURL=signInWithOIDC.js.map