From 0fec257354f80ed3f66bacad05fa4324f7ebb682 Mon Sep 17 00:00:00 2001 From: "pramod.mahajan" Date: Sun, 5 Oct 2025 00:21:19 +0530 Subject: [PATCH] make removeSession flexible to clear local, session, or both --- src/pages/authentication/LoginPage.jsx | 3 +++ src/router/ProtectedRoute.jsx | 2 +- src/utils/authUtils.js | 21 ++++++++++++++------- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/pages/authentication/LoginPage.jsx b/src/pages/authentication/LoginPage.jsx index 6be7cb2b..0015a605 100644 --- a/src/pages/authentication/LoginPage.jsx +++ b/src/pages/authentication/LoginPage.jsx @@ -6,6 +6,7 @@ import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { z } from "zod"; import { AuthWrapper } from "./AuthWrapper"; +import { removeSession } from "../../utils/authUtils"; const LoginPage = () => { const navigate = useNavigate(); @@ -44,9 +45,11 @@ const LoginPage = () => { if (data.rememberMe) { localStorage.setItem("jwtToken", response.data.token); localStorage.setItem("refreshToken", response.data.refreshToken); + removeSession("session") } else { sessionStorage.setItem("jwtToken", response.data.token); sessionStorage.setItem("refreshToken", response.data.refreshToken); + removeSession("local") } setLoading(false); navigate("/auth/switch/org"); diff --git a/src/router/ProtectedRoute.jsx b/src/router/ProtectedRoute.jsx index cfd7409d..9179d43d 100644 --- a/src/router/ProtectedRoute.jsx +++ b/src/router/ProtectedRoute.jsx @@ -59,7 +59,7 @@ const attemptTokenRefresh = async (storedRefreshToken) => { return true; } catch (error) { - + removeSession() return false; } }; diff --git a/src/utils/authUtils.js b/src/utils/authUtils.js index 8e266583..c09a6252 100644 --- a/src/utils/authUtils.js +++ b/src/utils/authUtils.js @@ -1,7 +1,14 @@ -export const removeSession = () => { - localStorage.removeItem("jwtToken"); - localStorage.removeItem("refreshToken"); - sessionStorage.removeItem("jwtToken"); - sessionStorage.removeItem("refreshToken"); - localStorage.removeItem("ctnt"); -}; \ No newline at end of file +export const removeSession = (target = "all") => { + const keys = ["jwtToken", "refreshToken", "ctnt"]; + + if (target === "local") { + keys.forEach((key) => localStorage.removeItem(key)); + } else if (target === "session") { + keys.forEach((key) => sessionStorage.removeItem(key)); + } else if (target === "all") { + keys.forEach((key) => { + localStorage.removeItem(key); + sessionStorage.removeItem(key); + }); + } +};