From f619d7b7962fcbb1e06789d61919c1f82c910c90 Mon Sep 17 00:00:00 2001 From: ISA Date: Fri, 15 Nov 2024 11:16:02 +0100 Subject: [PATCH] Error: decodeToken is not defined in Header.jsx --- .env.development | 4 +- .env.production | 3 +- components/Header.jsx | 7 +-- components/modales/kueModal/KueModal.jsx | 11 +++- .../modales/settingsModal/SettingsModal.jsx | 61 +++++++++++++------ package-lock.json | 12 ++++ package.json | 2 + pages/generate-hash.js | 23 +++++++ store/authSlice.js | 11 ++++ 9 files changed, 105 insertions(+), 29 deletions(-) create mode 100644 pages/generate-hash.js diff --git a/.env.development b/.env.development index 9f22047..d8943b8 100644 --- a/.env.development +++ b/.env.development @@ -1 +1,3 @@ -NEXT_PUBLIC_NODE_ENV=development \ No newline at end of file +NEXT_PUBLIC_NODE_ENV=development +NEXT_PUBLIC_ENCRYPTION_KEY=your-secure-encryption-key + diff --git a/.env.production b/.env.production index 146afc7..0c493c7 100644 --- a/.env.production +++ b/.env.production @@ -1 +1,2 @@ -NEXT_PUBLIC_NODE_ENV=production \ No newline at end of file +NEXT_PUBLIC_NODE_ENV=production +NEXT_PUBLIC_ENCRYPTION_KEY=your-secure-encryption-key diff --git a/components/Header.jsx b/components/Header.jsx index 46f5b16..6ce2055 100644 --- a/components/Header.jsx +++ b/components/Header.jsx @@ -25,12 +25,11 @@ function Header() { useEffect(() => { const token = localStorage.getItem("token"); if (token) { - const { exp } = JSON.parse(atob(token)); - if (Date.now() < exp) { - //setIsAdminLoggedIn(true); + const { exp } = decodeToken(token); + if (exp && Date.now() < exp) { + // Token ist gültig } else { localStorage.removeItem("token"); // Entferne abgelaufenen Token - //setIsAdminLoggedIn(false); } } }, []); diff --git a/components/modales/kueModal/KueModal.jsx b/components/modales/kueModal/KueModal.jsx index ffa0051..3ea3c6c 100644 --- a/components/modales/kueModal/KueModal.jsx +++ b/components/modales/kueModal/KueModal.jsx @@ -11,7 +11,8 @@ import firmwareUpdate from "./handlers/firmwareUpdate"; function decodeToken(token) { try { - const payload = JSON.parse(atob(token)); // Direkt das Token decodieren + const base64Payload = token.split(".")[1]; + const payload = JSON.parse(atob(base64Payload)); return payload; } catch (error) { console.error("Fehler beim Dekodieren des Tokens:", error); @@ -20,6 +21,7 @@ function decodeToken(token) { } function KueModal({ showModal, onClose, slot, onModulNameChange }) { + const isAdminLoggedIn = useSelector((state) => state.auth.isAdminLoggedIn); const [isAdmin, setIsAdmin] = useState(false); const dispatch = useDispatch(); const [ids, setIds] = useState(Array(32).fill("")); @@ -100,11 +102,14 @@ function KueModal({ showModal, onClose, slot, onModulNameChange }) { const token = localStorage.getItem("token"); if (token) { const decoded = decodeToken(token); - if (decoded && decoded.role === "Admin") { + if (decoded && decoded.role.toLowerCase() === "admin") { setIsAdmin(true); + } else { + setIsAdmin(false); } } }, [showModal]); + //------------------------------------------------------------------------------------------------------------ return ( {/* Bedingte Anzeige der Firmware-Update-Schaltfläche */} - {isAdmin && ( + {isAdminLoggedIn && (