From 19db5ec5cbb48a4d351519520166c37f040f080e Mon Sep 17 00:00:00 2001
From: IO420 <320154041@pcpuma.acatlan.unam.mx>
Date: Fri, 21 Nov 2025 08:43:38 -0600
Subject: [PATCH] added redirect based in type user
---
package-lock.json | 10 ++++++++++
package.json | 1 +
src/app/login/Login.tsx | 17 +++++++++++++----
src/app/styles/layout/pregunta7.scss | 2 +-
4 files changed, 25 insertions(+), 5 deletions(-)
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;