Skip to content

Feature/dc no ref token autenticacion#20

Merged
jotapeeeeee merged 3 commits into
developfrom
feature/DC_no_ref_token-autenticacion
Apr 27, 2025
Merged

Feature/dc no ref token autenticacion#20
jotapeeeeee merged 3 commits into
developfrom
feature/DC_no_ref_token-autenticacion

Conversation

@DanielContrerasCh
Copy link
Copy Markdown
Collaborator

@DanielContrerasCh DanielContrerasCh commented Apr 27, 2025

Solicitud de cambio (PR)

Agregar manejo de tokens de autenticación.

Descripción detallada

Se agregó el manejo de tokens de autenticación para cuando se inicia sesión y para cuando se abre 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

Se agrego el manejo del token de autenticacion JWT, para guardar el
token localmente y verificarlo al momento de iniciar sesion.
Comment thread harvester-app/src/backend/servicios/verificarToken.js
Comment thread harvester-app/src/framework/utils/js/inicioSesion.js
Copy link
Copy Markdown
Contributor

@jotapeeeeee jotapeeeeee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eliminar console logs

@jotapeeeeee jotapeeeeee merged commit 65f2d97 into develop Apr 27, 2025
@jotapeeeeee jotapeeeeee deleted the feature/DC_no_ref_token-autenticacion branch April 27, 2025 03:38
@black4ninja
Copy link
Copy Markdown

Análisis del Pull Request - Implementación de Sistema de Autenticación
Evaluación General
Este PR implementa un sistema de autenticación para la aplicación Harvester, agregando verificación de token y una pantalla de carga inicial que redirige según el estado de autenticación. Incluye:

Nuevo servicio de verificación de token (verificarToken.js)
Pantalla de carga con animación CSS y lógica de redirección
Integración con el inicio de sesión existente
Limpieza de dependencias no utilizadas (eliminación del paquete "all")

Aspectos Positivos

Arquitectura Modular

Implementación separada del servicio de verificación de token
Separación clara entre lógica de autenticación y presentación
Encapsulamiento adecuado de funcionalidades en archivos específicos

Autenticación Implementada

Uso de tokens JWT almacenados en localStorage
Verificación del token al cargar la aplicación
Redirección automática basada en el estado de autenticación

Documentación del Código

Comentarios JSDoc bien estructurados que explican las funciones y parámetros
Documentación clara de los flujos de redirección
Comentarios descriptivos en el código CSS que explican la animación

Experiencia de Usuario

Implementación de pantalla de carga con animación visualmente atractiva
Transiciones fluidas entre estados de autenticación
Feedback visual durante la verificación del token

Mantenimiento del Código

Eliminación de dependencias no utilizadas (paquete "all")
Mejora en el formato y organización del código existente
División lógica de responsabilidades

Áreas de Mejora

Configuración y Seguridad

URL hardcodeada ("http://localhost:3000/") que debería estar en variables de entorno
Uso de HTTP en lugar de HTTPS para comunicaciones con tokens sensibles
Almacenamiento de token en localStorage sin encriptación adicional

Manejo de Errores

Alertas genéricas para errores de inicio de sesión ("No se pudo conectar con el servidor")
Ausencia de feedback específico sobre problemas de validación del token
Falta de mecanismo para reintentar conexiones fallidas

Experiencia de Usuario Avanzada

Tiempo fijo de 2 segundos para la pantalla de carga sin considerar la velocidad real de conexión
No se muestra un indicador de progreso durante la verificación
No hay opción para saltar la pantalla de carga si la verificación es rápida

Consistencia del Código

Mezcla de estilos de declaración de variables (const y sin declaración para 'token')
En pantallaCarga.js la variable 'token' se declara sin let/const/var
Inconsistencia en el uso de comillas (simples y dobles) en el código

Recomendaciones Específicas

Mejorar la Configuración y Seguridad

Crear un archivo de configuración centralizado con variables de entorno
Implementar HTTPS para todas las comunicaciones de autenticación
Considerar alternativas más seguras a localStorage (como cookies HttpOnly)
Ejemplo:

// config.js
export const API_URL = process.env.API_URL || "https://api.harvester.com";

// verificarToken.js
const { API_URL } = require("../config.js");
const respuesta = await fetch(`${API_URL}/verificar-token`, {...});

Optimizar el Manejo de Errores

Implementar mensajes de error más específicos basados en códigos de respuesta
Agregar mecanismos de reintento para problemas de red temporales
Mostrar feedback visual para distintos tipos de error
Ejemplo:

try {
  // Verificación del token
} catch (error) {
  if (error.name === 'NetworkError') {
    mostrarError("Problema de conexión. Reintentando...");
    // Lógica de reintento
  } else {
    mostrarError("Error de autenticación: " + error.message);
  }
}

Mejorar la Experiencia de Usuario

Implementar un indicador de progreso real en lugar de tiempo fijo
Añadir opción para saltar la pantalla de carga cuando sea posible
Personalizar la experiencia basada en el tipo de dispositivo/conexión
Ejemplo:

// Iniciar verificación con indicador de progreso
const progressBar = document.querySelector('.progress-bar');
let progress = 0;

const interval = setInterval(() => {
  progress += 5;
  progressBar.style.width = `${progress}%`;
  if (progress >= 90) clearInterval(interval);
}, 100);

try {
  const tokenValido = await verificarToken(token);
  progressBar.style.width = '100%';
  // Redirigir después de completar la animación
} catch (error) {
  // Manejo de error
}

Estandarizar el Estilo del Código

Adoptar un linter como ESLint con reglas específicas
Corregir declaraciones de variables inconsistentes
Unificar el estilo de comillas y formato
Ejemplo de configuración ESLint:

json{
  "rules": {
    "quotes": ["error", "double"],
    "no-undef": "error",
    "prefer-const": "error"
  }
}

Implementar Pruebas

Crear pruebas unitarias para verificarToken.js
Añadir pruebas de integración para el flujo de autenticación
Implementar pruebas de usuario para la experiencia de pantalla de carga

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