diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js index 291ef3c9c5e82d992940690d80252f7602368b2c..d3b362f20153341e1ad10171ef39b2081fc50fa8 100644 --- a/javascript/src/iframe/viamapi-iframe.js +++ b/javascript/src/iframe/viamapi-iframe.js @@ -2291,32 +2291,31 @@ connection.promise.then(parent => { var identityLoadedEvent = false; var identityAuthenticatedEvent = false; - setInterval(function() { - if(window.currentlyAuthenticatedIdentity != null) { - var pinCode = getPincode(window.currentlyAuthenticatedIdentity.authentication.publicKey); - if(pinCode != null && pinCode !== "") { - getIdentityFromLocalStorage(window.currentlyAuthenticatedIdentity.authentication.publicKey, - pinCode, false).then((gotIdentity) => { - window.currentlyAuthenticatedIdentity = gotIdentity; - window.currentlyLoadedIdentity = gotIdentity; - if(identityAuthenticatedEvent === false && gotIdentity != null) { - var event = createEvent("IdentityAuthenticated", "Authenticated", [gotIdentity.authentication.publicKey]); - parent.onEvent(event); - identityAuthenticatedEvent = true - } - }) + setInterval(async function () { + if (window.currentlyAuthenticatedIdentity) { + const { authentication } = window.currentlyAuthenticatedIdentity; + const pinCode = getPincode(authentication.publicKey); + if (pinCode) { + const identity = await getIdentityFromLocalStorage(authentication.publicKey, pinCode, false); + window.currentlyAuthenticatedIdentity = identity; + window.currentlyLoadedIdentity = identity; + + if (!identityAuthenticatedEvent && identity) { + const event = createEvent("IdentityAuthenticated", "Authenticated", [identity.authentication.publicKey]); + parent.onEvent(event); + identityAuthenticatedEvent = true; + } } else { const authenticationPublicKey = localStorage.getItem("authenticatedIdentity"); - if(authenticationPublicKey != null && authenticationPublicKey !== "") { - loadIdentityInternal(authenticationPublicKey, "00000000").then(result => { - if(result.code !== "200") { - var event = createEvent("CanNotGetPincodeForAuthenticatedIdentity", "IdentityNotLoaded", [authenticationPublicKey]); - parent.onEvent(event); - clearPinCodeTtl(authenticationPublicKey); - window.currentlyAuthenticatedIdentity = null; - } - }); + if (authenticationPublicKey) { + const result = await loadIdentityInternal(authenticationPublicKey, "00000000"); + if (result.code !== "200") { + const event = createEvent("CanNotGetPincodeForAuthenticatedIdentity", "IdentityNotLoaded", [authenticationPublicKey]); + parent.onEvent(event); + clearPinCodeTtl(authenticationPublicKey); + window.currentlyAuthenticatedIdentity = null; + } } identityAuthenticatedEvent = false; @@ -2324,32 +2323,26 @@ connection.promise.then(parent => { } } - if(window.currentlyLoadedIdentity != null) { - var pinCode = getPincode(window.currentlyLoadedIdentity.authentication.publicKey); - if(pinCode === "" || pinCode == null) { - if(identityLoadedEvent === false) { - /*var event = createEvent("CanNotLoadPincodeForLoadedIdentity", "IdentityNotLoaded", [window.currentlyLoadedIdentity.authentication.publicKey]) - parent.onEvent(event) - identityLoadedEvent = true*/ - loadIdentityInternal(window.currentlyLoadedIdentity.authentication.publicKey, "00000000").then(result => { - if(result.code !== "200") { - var event = createEvent("CanNotLoadPincodeForLoadedIdentity", "IdentityNotLoaded", [window.currentlyLoadedIdentity.authentication.publicKey]); - parent.onEvent(event); - identityLoadedEvent = true - } - }); + if (window.currentlyLoadedIdentity) { + const pinCode = getPincode(window.currentlyLoadedIdentity.authentication.publicKey); + if (!pinCode) { + if (!identityLoadedEvent) { + const result = await loadIdentityInternal(window.currentlyLoadedIdentity.authentication.publicKey, "00000000"); + if (result.code !== "200") { + const event = createEvent("CanNotLoadPincodeForLoadedIdentity", "IdentityNotLoaded", [window.currentlyLoadedIdentity.authentication.publicKey]); + parent.onEvent(event); + identityLoadedEvent = true; + } } } else { - identityLoadedEvent = false + identityLoadedEvent = false; } } - - if (window.currentlyAuthenticatedIdentity != null) { - var now = new Date().getTime(); - if(now - window.lastTimeGetProfile > 30000) { - var identityToStore = window.currentlyAuthenticatedIdentity; - getProfileData(identityToStore); + if (window.currentlyAuthenticatedIdentity) { + const now = new Date().getTime(); + if (now - window.lastTimeGetProfile > 30000) { + getProfileData(window.currentlyAuthenticatedIdentity); window.lastTimeGetProfile = now; } }