From 646b4e556d25d1f15d35b39148ade695cc628091 Mon Sep 17 00:00:00 2001
From: Alexey Lunin <alexey.lunin@vereign.com>
Date: Tue, 7 May 2019 10:10:10 +0400
Subject: [PATCH] Check localStorage auth

---
 javascript/src/iframe/viamapi-iframe.js | 26 +++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js
index 63ad5c2..c66eb9c 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 () => {
-- 
GitLab