Index: frontend/src/api/axios.js
===================================================================
--- frontend/src/api/axios.js	(revision 3ebe47cce61b3bfc1dee2566f7475e378374591e)
+++ frontend/src/api/axios.js	(revision 42da64dc0d28f9380336816f6fb82c7572d0021d)
@@ -1,3 +1,4 @@
 import axios from "axios";
+import { getAuthToken, isTokenExpired, logoutAndRedirect } from "../utils/authSession";
 
 const api = axios.create({
@@ -6,6 +7,10 @@
 
 api.interceptors.request.use((config) => {
-  const token = localStorage.getItem("authToken");
+  const token = getAuthToken();
   if (token) {
+    if (isTokenExpired(token)) {
+      logoutAndRedirect("/dashboard");
+      return Promise.reject(new Error("Authentication session expired"));
+    }
     config.headers = config.headers ?? {};
     config.headers.Authorization = `Bearer ${token}`;
@@ -14,3 +19,14 @@
 });
 
+api.interceptors.response.use(
+  (response) => response,
+  (error) => {
+    const status = error?.response?.status;
+    if (status === 401 || status === 403) {
+      logoutAndRedirect("/dashboard");
+    }
+    return Promise.reject(error);
+  },
+);
+
 export default api;
