diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js index 4d9f7a73b1df14de4cbef64d0347731c1ef71afd..2c7de95a5eb47082ff97299dc5b245132174fb73 100644 --- a/javascript/src/iframe/viamapi-iframe.js +++ b/javascript/src/iframe/viamapi-iframe.js @@ -1227,6 +1227,10 @@ connection.promise.then(parent => { let identityLoadedEvent = false; let identityAuthenticatedEvent = false; + let previousLocalStorageUUID; + let previousLocalStorageToken; + let previousLocalStorageIdentity; + setInterval(async function () { if (window.currentlyAuthenticatedIdentity) { const { authentication } = window.currentlyAuthenticatedIdentity; @@ -1282,6 +1286,28 @@ connection.promise.then(parent => { window.lastTimeGetProfile = now; } } + + const currentLocalStorageUUID = localStorage.getItem("uuid"); + const currentLocalStorageToken = localStorage.getItem("token"); + const currentLocalStorageIdentity = localStorage.getItem("authenticatedIdentity"); + if ( + !currentLocalStorageUUID && previousLocalStorageUUID || + !currentLocalStorageToken && previousLocalStorageToken || + !currentLocalStorageIdentity && previousLocalStorageIdentity + ) { + previousLocalStorageUUID = null; + previousLocalStorageToken = null; + previousLocalStorageIdentity = null; + + destroyAuthentication(); + + const event = createEvent("", "LogoutExternal"); + parent.onEvent(event); + } else { + previousLocalStorageUUID = currentLocalStorageUUID; + previousLocalStorageToken = currentLocalStorageToken; + previousLocalStorageIdentity = currentLocalStorageIdentity; + } }, 50); const getNewEventsWithoutSession = async () => {