Skip to content

Feature/dc no ref rbac#26

Merged
jotapeeeeee merged 5 commits into
developfrom
feature/DC_no_ref_RBAC
Apr 29, 2025
Merged

Feature/dc no ref rbac#26
jotapeeeeee merged 5 commits into
developfrom
feature/DC_no_ref_RBAC

Conversation

@DanielContrerasCh
Copy link
Copy Markdown
Collaborator

@DanielContrerasCh DanielContrerasCh commented Apr 29, 2025

Solicitud de cambio (PR)

Se agregó el manejo de RBAC

Descripción detallada

Se agregó el manejo de RBAC para guardar los permisos obtenidos del backend y un util para verificar los mismos al momento de iniciar sesión y abrir la app.

Tipo de cambio

  • Nueva funcionalidad (Un cambio que agrega una funcionalidad)
  • Correción de errores (Un cambio que arregla un problema)
  • Refactorización
  • Hotfix (Una correción urgente que será revisada posteriormente)

Checklist del autor:

  • He determinado que los cambios no tienen un impacto negativo en la aplicación
  • He actualizado los productos relacionados a la historia de usuario y lo movere a "Terminado" una vez que se haga la fusión
  • Alguien más está asignado como evaluador (tester/reviewer)

Checklist del evaluador:

  • He determinado que los cambios no tienen un impacto negativo en la aplicación
  • He notificado al autor del PR en caso de dudas o ajustes necesarios
  • Una vez que acepte el PR, eliminaré la rama

@jotapeeeeee jotapeeeeee merged commit 56ec450 into develop Apr 29, 2025
@jotapeeeeee jotapeeeeee deleted the feature/DC_no_ref_RBAC branch April 29, 2025 00:39
@black4ninja
Copy link
Copy Markdown

Análisis del Pull Request - Implementación de Verificación de Permisos
Evaluación General
Este PR implementa una nueva funcionalidad de verificación de permisos a través de tokens JWT, mejorando la seguridad y control de acceso en la aplicación. Incluye:

Nuevo servicio para verificar permisos de usuario (verificarPermisos.js)
Modificación del servicio existente de verificación de token
Integración con las páginas de inicio de sesión y carga
Almacenamiento local de permisos para su uso en la aplicación

Aspectos Positivos

Estructura Modular

Implementación basada en servicios separados para distintas responsabilidades
Separación clara entre verificación de token y verificación de permisos
Mantiene consistencia con la arquitectura existente

Seguridad Implementada

Verificación doble: validez del token y permisos específicos
Almacenamiento de permisos para control de acceso en componentes
Uso de headers de autorización siguiendo estándares (Bearer token)

Documentación del Código

Comentarios JSDoc bien implementados que explican la función y parámetros
Documentación de entradas y salidas esperadas
Comentarios adicionales que explican la lógica del proceso

Manejo de Errores

Estructura try/catch en los servicios
Manejo de casos donde no hay token disponible
Logging de errores para facilitar depuración

Áreas de Mejora

Seguridad y Configuración

URL hardcodeada ("http://localhost:3000/") debería estar en variables de entorno o archivos de configuración
Uso de HTTP en lugar de HTTPS para comunicaciones con tokens
No hay validación de origen o estructura del token antes de hacer la petición

Inconsistencias en el Código

Duplicación de lógica entre verificarToken.js y verificarPermisos.js
En verificarToken.js se guarda datos.permisos en localStorage, y en inicioSesion.js se guarda nuevamente
moduloInicio.js obtiene permisos pero no los utiliza

Manejo de Estado

Uso de localStorage directamente en servicios backend (en verificarToken.js)
No hay separación clara entre cliente y servidor en el manejo de permisos
Posible vulnerabilidad al almacenar permisos sin encriptar en localStorage

Inconsistencia en Respuestas

verificarToken.js retorna respuesta.ok en lugar de respuesta.ok && datos.valido
No queda claro si verificarPermisos devuelve un objeto o un booleano

Recomendaciones Específicas

Mejorar la Seguridad

Mover URLs a archivos de configuración usando variables de entorno
Utilizar HTTPS para todas las comunicaciones que involucren tokens
Implementar validación de formato del token antes de hacer peticiones

Refactorizar para Evitar Duplicidad

Crear un servicio base de autenticación que sea utilizado por ambos verificadores
Establecer una única fuente de verdad para el almacenamiento de permisos
Definir claramente los tipos de datos esperados en las respuestas

Mejorar el Manejo de Estado

Separar claramente responsabilidades cliente/servidor
No usar localStorage en servicios que deberían ser independientes del entorno
Considerar usar una biblioteca de gestión de estado como Redux

Estandarizar y Validar Respuestas

Definir un formato de respuesta consistente para todos los servicios
Validar siempre las respuestas del servidor antes de usarlas
Documentar claramente la estructura esperada de los datos

Implementar Pruebas

Añadir pruebas unitarias para los servicios de verificación
Implementar pruebas de integración para el flujo completo
Incluir casos de prueba para escenarios de error

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants