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");
         }
       }