Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/banredco/helpdesk/llms.txt

Use this file to discover all available pages before exploring further.

El portal del cliente de Banred Helpdesk dispone de un sistema de autenticación propio, completamente independiente del panel de administración. Los clientes crean su cuenta desde la página de registro, acceden con su correo y contraseña, y pueden recuperar el acceso en caso de olvidar sus credenciales. Una vez autenticados, también pueden actualizar su información de perfil desde el área privada.

Registro

El autoregistro está disponible en /soporte/portal/register.php (también accesible como /soporte/register gracias a las reglas de reescritura del .htaccess).
1

Ir a la página de registro

Navega a https://helpdesk.banred.com.co/soporte/register o haz clic en Crear cuenta desde la página de inicio de sesión.
2

Completar el formulario

Ingresa los siguientes datos:
CampoRequeridoDescripción
Nombre completoNombre con el que aparecerás en el portal y en los tickets.
Correo electrónicoDebe ser único en el sistema. Si ya existe una cuenta con ese correo se mostrará un error.
TeléfonoNoNúmero de contacto opcional.
ContraseñaSe almacena como hash usando password_hash() con PASSWORD_DEFAULT.
3

Enviar el formulario

Haz clic en Crear Cuenta. Si el correo no está registrado previamente, se insertará un nuevo registro en la tabla customers con is_registered = 1 e is_active = 1, y serás redirigido a la página de inicio de sesión.
El formulario de registro incluye protección CSRF. El token se genera con Csrf::generate() y se valida en el servidor al enviar el formulario. Si el token no es válido se muestra el mensaje “La sesión del formulario expiró. Intenta nuevamente.”

Iniciar sesión

La página de inicio de sesión se encuentra en /soporte/portal/login.php (o /soporte/login). Para autenticarse, el cliente ingresa su correo electrónico y contraseña. El sistema busca en la tabla customers un registro activo (is_active = 1) con ese correo y verifica la contraseña con password_verify(). Si las credenciales son correctas:
  • Se guardan customer_id y customer_name en la sesión de PHP.
  • Se actualiza el campo last_login_at en la tabla customers.
  • El cliente es redirigido a /soporte/dashboard.
Si ya existe una sesión activa al intentar acceder a la página de login, la aplicación redirige directamente al dashboard sin mostrar el formulario. En caso de credenciales incorrectas se muestra el mensaje: “Correo o contraseña incorrectos”.

Recuperar contraseña

El flujo de recuperación de contraseña se divide en dos páginas: 1. Solicitar el enlace/soporte/forgot-password.php El cliente ingresa su correo electrónico. Si existe una cuenta con ese correo, el sistema:
  1. Genera un token aleatorio con bin2hex(random_bytes(32)).
  2. Guarda el token y su fecha de expiración (1 hora a partir del momento de la solicitud) en la tabla customer_password_resets.
  3. Construye el enlace de recuperación: https://helpdesk.banred.com.co/soporte/reset-password.php?token={token}.
  4. Envía el enlace al correo del cliente mediante MailService::sendCustomTemplate('password_reset', ...).
Si no existe ninguna cuenta con ese correo se muestra el error: “No existe una cuenta con ese correo”. 2. Establecer la nueva contraseña/soporte/reset-password.php?token={token} El cliente accede al enlace recibido por correo. El sistema valida que el token exista y no haya vencido (expires_at > NOW()). Si el token es inválido o expiró, la página muestra “Enlace inválido o vencido”. Si el token es válido, el cliente ingresa su nueva contraseña y al enviar el formulario:
  1. La contraseña se hashea y se actualiza en la tabla customers.
  2. El registro del token se elimina de customer_password_resets.
  3. Se muestra un mensaje de éxito con un enlace para ir al inicio de sesión.

Actualizar perfil

Una vez autenticado, el cliente puede editar su información desde /soporte/portal/profile.php. Los campos disponibles son:
CampoEditableDescripción
NombreSe actualiza directamente en customers.name y también en $_SESSION['customer_name'].
Correo electrónicoNo (solo lectura)Se muestra como referencia pero no puede modificarse desde el portal.
TeléfonoCampo opcional.
ContraseñaSí (opcional)Para cambiarla es obligatorio ingresar la contraseña actual. La nueva debe coincidir con la confirmación y tener mínimo 8 caracteres.
El campo Último Acceso muestra la fecha y hora de last_login_at en formato d/m/Y H:i y es de solo lectura.

Cerrar sesión

El cierre de sesión se realiza en /soporte/portal/logout.php. Este script:
  1. Inicia la sesión con session_start().
  2. Destruye completamente la sesión con session_destroy().
  3. Redirige al cliente a la página de inicio del Centro de Ayuda (/soporte/).
La autenticación de clientes es completamente independiente de la autenticación de agentes y administradores. Los clientes se identifican mediante $_SESSION['customer_id'] y sus datos se almacenan en la tabla customers. Los agentes y administradores usan $_SESSION['user_id'] y la tabla users. Un cliente autenticado en el portal no tiene acceso al panel de administración en /admin, ni viceversa.

Build docs developers (and LLMs) love