diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js index 96c943b8024053af72e7ae102a1bf42c7cb5a302..ba3b561ad082517a325cee6c3d5fabd837b4038e 100644 --- a/javascript/src/iframe/viamapi-iframe.js +++ b/javascript/src/iframe/viamapi-iframe.js @@ -277,13 +277,14 @@ window.lastTimeGetProfile = 0; let iframeParent = null; const handleIdentityLogin = (identity, uuid, token) => { - const { viamApi } = window; + const { viamApi, loadedIdentities } = window; const { publicKey } = identity.authentication; viamApi.setSessionData(uuid, token); localStorage.setItem("uuid", uuid); localStorage.setItem("token", token); localStorage.setItem("authenticatedIdentity", publicKey); - window.currentlyAuthenticatedIdentity = identity; + window.currentlyAuthenticatedIdentity = + loadedIdentities[publicKey] || identity; window.lastTimeGetProfile = 0; setKeyForUUID(uuid, publicKey); }; @@ -993,10 +994,10 @@ const connection = Penpal.connectToParent({ const currentlyLoadedIdentity = localStorage.getItem( "currentlyLoadedIdentity" ); - const parsedIdentity = JSON.parse(currentlyLoadedIdentity); - window.currentlyLoadedIdentity = parsedIdentity; - const { publicKey } = parsedIdentity.authentication; - window.loadedIdentities[publicKey] = parsedIdentity; + const identity = new Identity(currentlyLoadedIdentity); + window.currentlyLoadedIdentity = identity; + const { publicKey } = identity.authentication; + window.loadedIdentities[publicKey] = identity; window.viamAnonymousApi.setIdentity(publicKey); window.viamApi.setSessionData("", ""); window.viamApi.setIdentity(publicKey); @@ -1029,10 +1030,11 @@ const connection = Penpal.connectToParent({ ); const { code, data } = identityLoginResponse; + if (code === "200") { - await setIdentityInLocalStorage(parsedIdentity); - handleIdentityLogin(parsedIdentity, data.Uuid, data.Session); - await getProfileData(parsedIdentity); + await setIdentityInLocalStorage(identity); + handleIdentityLogin(identity, data.Uuid, data.Session); + await getProfileData(identity); localStorage.removeItem("currentlyLoadedIdentity"); } }