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.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.
Registro
El autoregistro está disponible en/soporte/portal/register.php (también accesible como /soporte/register gracias a las reglas de reescritura del .htaccess).
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.Completar el formulario
Ingresa los siguientes datos:
| Campo | Requerido | Descripción |
|---|---|---|
| Nombre completo | Sí | Nombre con el que aparecerás en el portal y en los tickets. |
| Correo electrónico | Sí | Debe ser único en el sistema. Si ya existe una cuenta con ese correo se mostrará un error. |
| Teléfono | No | Número de contacto opcional. |
| Contraseña | Sí | Se almacena como hash usando password_hash() con PASSWORD_DEFAULT. |
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_idycustomer_nameen la sesión de PHP. - Se actualiza el campo
last_login_aten la tablacustomers. - El cliente es redirigido a
/soporte/dashboard.
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:
- Genera un token aleatorio con
bin2hex(random_bytes(32)). - Guarda el token y su fecha de expiración (1 hora a partir del momento de la solicitud) en la tabla
customer_password_resets. - Construye el enlace de recuperación:
https://helpdesk.banred.com.co/soporte/reset-password.php?token={token}. - Envía el enlace al correo del cliente mediante
MailService::sendCustomTemplate('password_reset', ...).
/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:
- La contraseña se hashea y se actualiza en la tabla
customers. - El registro del token se elimina de
customer_password_resets. - 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:
| Campo | Editable | Descripción |
|---|---|---|
| Nombre | Sí | Se actualiza directamente en customers.name y también en $_SESSION['customer_name']. |
| Correo electrónico | No (solo lectura) | Se muestra como referencia pero no puede modificarse desde el portal. |
| Teléfono | Sí | Campo opcional. |
| Contraseña | Sí (opcional) | Para cambiarla es obligatorio ingresar la contraseña actual. La nueva debe coincidir con la confirmación y tener mínimo 8 caracteres. |
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:
- Inicia la sesión con
session_start(). - Destruye completamente la sesión con
session_destroy(). - 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.