diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js index 63ad5c252a818d236ca6ebad17f1bb226fa85fd6..c66eb9c145498d78e471533db1aeac3806757e7b 100644 --- a/javascript/src/iframe/viamapi-iframe.js +++ b/javascript/src/iframe/viamapi-iframe.js @@ -1215,6 +1215,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; @@ -1270,6 +1274,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); setInterval(async () => {