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..83d1432 100644 --- a/components/Header.jsx +++ b/components/Header.jsx @@ -5,6 +5,7 @@ import { useRouter } from "next/router"; import "bootstrap-icons/font/bootstrap-icons.css"; import SettingsModal from "./modales/settingsModal/SettingsModal"; import { useSelector } from "react-redux"; +import decodeToken from "../utils/decodeToken"; function Header() { const isAdminLoggedIn = useSelector((state) => state.auth.isAdminLoggedIn); @@ -25,12 +26,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..2b6b23f 100644 --- a/components/modales/kueModal/KueModal.jsx +++ b/components/modales/kueModal/KueModal.jsx @@ -8,18 +8,10 @@ import handleSave from "./handlers/handleSave"; import handleDisplayEinschalten from "./handlers/handleDisplayEinschalten"; import handleChange from "./handlers/handleChange"; import firmwareUpdate from "./handlers/firmwareUpdate"; - -function decodeToken(token) { - try { - const payload = JSON.parse(atob(token)); // Direkt das Token decodieren - return payload; - } catch (error) { - console.error("Fehler beim Dekodieren des Tokens:", error); - return null; - } -} +import decodeToken from "../../../utils/decodeToken"; 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 +92,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 && (