diff --git a/package-lock.json b/package-lock.json index 25b4aa4..89613e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@zxing/library": "^0.21.3", "axios": "^1.13.2", "js-cookie": "^3.0.5", + "jwt-decode": "^4.0.0", "next": "16.0.2", "react": "19.2.0", "react-dom": "19.2.0", @@ -4978,6 +4979,15 @@ "node": ">=4.0" } }, + "node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", diff --git a/package.json b/package.json index 4bb973a..809aa92 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "@zxing/library": "^0.21.3", "axios": "^1.13.2", "js-cookie": "^3.0.5", + "jwt-decode": "^4.0.0", "next": "16.0.2", "react": "19.2.0", "react-dom": "19.2.0", diff --git a/src/app/login/Login.tsx b/src/app/login/Login.tsx index 58124ae..cb75a5d 100644 --- a/src/app/login/Login.tsx +++ b/src/app/login/Login.tsx @@ -7,6 +7,7 @@ import Image from "next/image"; import axios from "axios"; import { useRouter } from "next/navigation"; import toast from "react-hot-toast"; +import { jwtDecode } from "jwt-decode"; export default function Login() { const [nombre, setNombre] = useState(""); @@ -31,7 +32,18 @@ export default function Login() { const { token } = response.data; document.cookie = `token=${token}; path=/; SameSite=Strict`; - router.push("/escaner"); + + const decoded: any = jwtDecode(token); + const tipo = decoded?.tipoUsuario; + + if (tipo === 2) { + router.push("/escaner"); + } else if (tipo === 1) { + router.push("/equipoComputo"); + } else { + toast.error("Tipo de usuario no válido"); + } + } catch (err) { if (axios.isAxiosError(err)) { if (err.response) { @@ -79,9 +91,6 @@ export default function Login() { - - {/* Olvidaste Contraseña? */} - {/* Crear Cuenta */} diff --git a/src/app/styles/layout/pregunta7.scss b/src/app/styles/layout/pregunta7.scss index ce8fbdb..8919808 100644 --- a/src/app/styles/layout/pregunta7.scss +++ b/src/app/styles/layout/pregunta7.scss @@ -47,7 +47,7 @@ table { } thead th { - background-color: #0056b3; + background-color: #003e79; color: #fff; text-align: left; padding: 14px;