Appearance
Restablecimiento de Contraseña del Portal
Módulo: Portal Clientes Tipo: Proceso Estado: En desarrollo Fecha: 2026-05-11
Descripción
Cuando un cliente del portal olvida su contraseña no puede autenticarse ni acceder a sus datos de cuenta, facturas ni deudas. El proceso de restablecimiento de contraseña le permite recuperar el acceso de forma autónoma, sin intervención de un operador del ERP.
El proceso se inicia desde la página de login del portal, guía al cliente a través de dos pasos (solicitud de código y definición de nueva contraseña) y concluye con el cliente redirigido al login con confirmación del cambio.
Valor para el negocio:
- Permite que el cliente recupere el acceso a su cuenta sin asistencia del equipo interno
- Reduce la carga operativa al eliminar la necesidad de intervención manual para reseteos de contraseña
- Mantiene la seguridad de la cuenta al enviar el código exclusivamente al correo registrado del cliente
Contexto:
- El proceso es iniciado exclusivamente por el cliente del portal — nunca por un operador del ERP
- El código de verificación tiene vigencia limitada de 15 minutos desde su generación
- El sistema no revela si un correo está registrado o no, protegiendo la privacidad de los datos
Funcionalidad
Paso 1 — Solicitud del código (ForgotPasswordView)
El cliente accede a esta vista desde el enlace "Olvidé mi contraseña" en la página de login del portal.
El cliente ingresa su dirección de correo electrónico y envía la solicitud. El sistema responde con el mensaje:
"Si el email está registrado, recibirás un mail en breve"
Este mensaje se muestra siempre, independientemente de si el correo está registrado o no.
Cuando el correo está registrado, el sistema envía un email al cliente con:
- Un enlace al portal que incluye el código de verificación pre-completado en la URL
- Una indicación de que el enlace expira en 15 minutos
Paso 2 — Definición de nueva contraseña (ResetPasswordView)
El cliente accede a esta vista a través del enlace recibido por email. El código de verificación llega pre-completado en el formulario a partir del parámetro de la URL.
El cliente ingresa su nueva contraseña y la confirma en un campo de confirmación.
Al enviar, el sistema valida el código y actualiza la contraseña. Cuando el proceso es exitoso, el cliente es redirigido a la página de login con un mensaje de confirmación.
Reglas de Negocio
RN-001: Anti-enumeración de cuentas
- Descripción: El sistema nunca revela si un correo electrónico está o no registrado en el portal. La respuesta al cliente es siempre la misma: "Si el email está registrado, recibirás un mail en breve".
- Ejemplo: Un cliente ingresa un correo inexistente. El sistema muestra el mismo mensaje que si el correo existiera; no se envía ningún email.
RN-002: Expiración del código
- Descripción: El código de verificación es válido únicamente durante 15 minutos desde el momento en que fue generado. Pasado ese tiempo, el código queda inválido y el cliente debe iniciar el proceso nuevamente.
- Ejemplo: Un cliente recibe el email pero intenta usar el enlace 20 minutos después. El sistema rechaza el código como expirado.
RN-003: Formato del código de verificación
- Descripción: El código es numérico de 6 dígitos, con ceros de relleno cuando corresponda.
- Ejemplo: Un código válido es "042871".
RN-004: Degradación sin SMTP
- Descripción: Si el servicio de correo electrónico no está configurado para el tenant, el sistema registra internamente el evento pero no devuelve un error al cliente. El cliente ve el mismo mensaje de confirmación de solicitud.
- Ejemplo: La sucursal no tiene SMTP configurado. El cliente envía la solicitud, el sistema no puede enviar el email pero el cliente recibe la respuesta habitual sin indicación de error.
RN-005: Unicidad del código vigente
- Descripción: Cada solicitud genera un nuevo código. El código generado está asociado al correo del cliente y tiene vigencia hasta los 15 minutos de su emisión.
Casos de Uso
UC-001: Cliente restablece su contraseña exitosamente
Actor: Cliente del portal
Precondiciones:
- El cliente tiene una cuenta activa en el portal con un correo registrado
- El cliente tiene acceso a la bandeja de entrada del correo registrado
- El tenant tiene SMTP configurado
Flujo principal:
- El cliente accede a la página de login del portal y selecciona "Olvidé mi contraseña"
- El sistema muestra el formulario de solicitud (ForgotPasswordView)
- El cliente ingresa su dirección de correo electrónico y envía la solicitud
- El sistema registra la solicitud, genera un código de 6 dígitos con expiración a 15 minutos y envía el email al cliente
- El sistema muestra el mensaje: "Si el email está registrado, recibirás un mail en breve"
- El cliente abre el email y selecciona el enlace de restablecimiento
- El sistema muestra el formulario de nueva contraseña (ResetPasswordView) con el código pre-completado
- El cliente ingresa su nueva contraseña y la confirmación, y envía el formulario
- El sistema valida que el código es correcto y no ha expirado, y actualiza la contraseña
- El sistema redirige al cliente a la página de login con un mensaje de confirmación de éxito
Postcondiciones:
- La contraseña del cliente queda actualizada
- El código de verificación utilizado queda invalidado
UC-002: Cliente solicita reset con correo no registrado
Actor: Visitante del portal (sin cuenta registrada bajo ese correo)
Flujo principal:
- El visitante accede a "Olvidé mi contraseña" e ingresa un correo no registrado
- El sistema detecta que el correo no existe, pero no lo indica
- El sistema muestra el mismo mensaje: "Si el email está registrado, recibirás un mail en breve"
- No se envía ningún email
Postcondiciones:
- Ningún dato del sistema es modificado
- El visitante no obtiene información sobre la existencia de cuentas
UC-003: Cliente intenta usar un código expirado
Actor: Cliente del portal
Precondiciones:
- El cliente solicitó un código de restablecimiento
- Han transcurrido más de 15 minutos desde la generación del código
Flujo principal:
- El cliente accede al enlace recibido por email
- El sistema muestra el formulario ResetPasswordView con el código pre-completado
- El cliente ingresa la nueva contraseña y envía el formulario
- El sistema detecta que el código ha expirado y rechaza la solicitud
- El sistema informa al cliente que el enlace expiró y lo invita a iniciar el proceso nuevamente
Postcondiciones:
- La contraseña del cliente no es modificada
- El cliente puede reiniciar el proceso desde "Olvidé mi contraseña"
UC-004: Cliente solicita reset sin SMTP configurado
Actor: Cliente del portal
Precondiciones:
- El cliente tiene una cuenta activa con el correo ingresado
- El tenant no tiene servicio de correo configurado
Flujo principal:
- El cliente ingresa su correo y envía la solicitud
- El sistema detecta que el correo está registrado, genera el código y registra internamente que el envío de email no pudo realizarse
- El sistema muestra el mismo mensaje de confirmación: "Si el email está registrado, recibirás un mail en breve"
- El cliente no recibe ningún email
Postcondiciones:
- El cliente no puede completar el restablecimiento en esta sesión
- No se expone ningún error al cliente
Puntos de Contacto con el Cliente (Frontend)
| Vista | Descripción |
|---|---|
| ForgotPasswordView | Formulario de ingreso del correo electrónico. Accesible desde el login del portal. |
| Email de restablecimiento | Mensaje enviado al correo del cliente con el enlace que incluye el código pre-completado. Indica que el enlace expira en 15 minutos. |
| ResetPasswordView | Formulario de nueva contraseña y confirmación. El código llega pre-completado desde la URL. |
| Página de login (redirección) | Destino final del flujo exitoso, con mensaje de confirmación visible para el cliente. |
Criterios de Aceptación
- [ ] Dado que el cliente ingresa un correo registrado, cuando envía la solicitud, entonces el sistema muestra "Si el email está registrado, recibirás un mail en breve" y envía el email con el enlace de restablecimiento
- [ ] Dado que el cliente ingresa un correo no registrado, cuando envía la solicitud, entonces el sistema muestra el mismo mensaje "Si el email está registrado, recibirás un mail en breve" sin enviar email y sin revelar que el correo no existe
- [ ] Dado que el cliente recibe el email de restablecimiento, cuando abre el enlace, entonces la vista ResetPasswordView muestra el código pre-completado en el formulario
- [ ] Dado que el cliente ingresa una nueva contraseña dentro de los 15 minutos de generado el código, cuando envía el formulario, entonces el sistema actualiza la contraseña y redirige al login con mensaje de confirmación
- [ ] Dado que han transcurrido más de 15 minutos desde la generación del código, cuando el cliente intenta usarlo, entonces el sistema rechaza la solicitud e informa que el enlace expiró
- [ ] Dado que el tenant no tiene SMTP configurado, cuando el cliente solicita el restablecimiento, entonces el sistema muestra la respuesta habitual sin exponer ningún error al cliente
- [ ] Dado que el flujo fue completado exitosamente, cuando el cliente es redirigido al login, entonces puede autenticarse con su nueva contraseña
Notas Adicionales
- El proceso es autoservicio completo: no requiere intervención de ningún operador del ERP
- La protección anti-enumeración (RN-001) es una medida de seguridad deliberada; la experiencia de usuario es conscientemente ambigua para proteger la privacidad de las cuentas registradas
- La degradación silenciosa sin SMTP (RN-004) prioriza la experiencia del cliente por sobre la comunicación de errores de infraestructura