commit aaae763d59bb8d8db41ab096e878290074106af1
parent 393e6adfac6f4129ddd1643c9843f188bf3eed82
Author: MTRNord <mtrnord1@gmail.com>
Date: Tue, 29 Apr 2025 13:22:43 +0200
Ensure we store the access token locally to survive reloads of the page
Signed-off-by: MTRNord <mtrnord1@gmail.com>
Diffstat:
1 file changed, 18 insertions(+), 0 deletions(-)
diff --git a/src/contexts/session-context.tsx b/src/contexts/session-context.tsx
@@ -166,6 +166,12 @@ export function SessionProvider({ children }: { children: ReactNode }) {
const userData = await response.json();
setUser(userData);
+
+ // Persist access token and expiration in sessionStorage
+ sessionStorage.setItem("accessToken", accessToken);
+ sessionStorage.setItem("openidExpiration", expires_in.toString());
+
+
router.replace("/dashboard");
} catch (error) {
console.error("Login failed:", error);
@@ -203,6 +209,12 @@ export function SessionProvider({ children }: { children: ReactNode }) {
}
const userData = await response.json();
setUser(userData);
+
+ // Persist access token and expiration in sessionStorage
+ sessionStorage.setItem("accessToken", accessToken);
+ sessionStorage.setItem("openidExpiration", expires_in.toString());
+
+
router.replace("/dashboard");
} catch (error) {
console.error("Login failed:", error);
@@ -222,6 +234,12 @@ export function SessionProvider({ children }: { children: ReactNode }) {
setUser(undefined);
setAccessToken(undefined);
+ setOpenIDExpiration(undefined);
+
+ // Clear sessionStorage
+ sessionStorage.removeItem("accessToken");
+ sessionStorage.removeItem("openidExpiration");
+
router.push("/");
} catch (error) {
console.error("Logout failed:", error);