Browse Source

fix(sync): logout and clear cognito keys

Andelf 1 year ago
parent
commit
d114756212
1 changed files with 10 additions and 1 deletions
  1. 10 1
      src/main/frontend/handler/user.cljs

+ 10 - 1
src/main/frontend/handler/user.cljs

@@ -90,12 +90,21 @@
    (js/localStorage.setItem "access-token" access-token)
    (js/localStorage.setItem "access-token" access-token)
    (js/localStorage.setItem "refresh-token" refresh-token)))
    (js/localStorage.setItem "refresh-token" refresh-token)))
 
 
+(defn- clear-cognito-tokens!
+  "Clear tokens for cognito's localstorage, prefix is 'CognitoIdentityServiceProvider'"
+  []
+  (let [prefix "CognitoIdentityServiceProvider."]
+    (doseq [key (js/Object.keys js/localStorage)]
+      (when (string/starts-with? key prefix)
+        (js/localStorage.removeItem key)))))
+
 (defn- clear-tokens
 (defn- clear-tokens
   ([]
   ([]
    (state/set-auth-id-token nil)
    (state/set-auth-id-token nil)
    (state/set-auth-access-token nil)
    (state/set-auth-access-token nil)
    (state/set-auth-refresh-token nil)
    (state/set-auth-refresh-token nil)
-   (set-token-to-localstorage! "" "" ""))
+   (set-token-to-localstorage! "" "" "")
+   (clear-cognito-tokens!))
   ([except-refresh-token?]
   ([except-refresh-token?]
    (state/set-auth-id-token nil)
    (state/set-auth-id-token nil)
    (state/set-auth-access-token nil)
    (state/set-auth-access-token nil)