Files
jRDC-MultiDB-Hikari/DoLoginHandler.bas
jaguerrau 9c9e2975e9 - VERSION 5.10.27
- feat(arquitectura): Consolidación de estabilidad y diagnóstico.
- refactor: Arquitectura de base de datos local y políticas de logs.
- arch(sqlite): Aislamiento total de las conexiones SQLite en SQL_Auth y SQL_Logs. Esto protege las operaciones de autenticación críticas de la alta carga de I/O generada por el subsistema de logs.
- feat(logs): Implementación de modo de almacenamiento flexible para logs (disco o en memoria), mejorando la capacidad de testing.
- refactor(logs): Se estandariza el límite de retención de registros a 10,000 para todas las tablas de logs, y se renombra la subrutina de limpieza a borraArribaDe10000Logs.
2025-10-29 05:25:56 -06:00

40 lines
1.1 KiB
QBasic

B4J=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=10.3
@EndOfDesignText@
'Class module: DoLoginHandler
Sub Class_Globals
Private bc As BCrypt
End Sub
Public Sub Initialize
bc.Initialize("BC")
End Sub
Public Sub Handle(req As ServletRequest, resp As ServletResponse)
' Limpiamos el input del usuario para evitar errores
Dim u As String = req.GetParameter("username").Trim
Dim p As String = req.GetParameter("password")
Log(u)
Try
' Buscamos el hash en la base de datos de autenticación (SQL_Auth)
Dim storedHash As String = Main.SQL_Auth.ExecQuerySingleResult2("SELECT password_hash FROM users WHERE username = ?", Array As String(u))
Log($"${storedHash}"$)
' Verificamos la contraseña contra el hash
If storedHash <> Null And bc.checkpw(p, storedHash) Then
' CREDENCIALES CORRECTAS
req.GetSession.SetAttribute("user_is_authorized", True)
req.GetSession.SetAttribute("username", u)
resp.SendRedirect("/manager")
Else
' Credenciales incorrectas
resp.SendRedirect("/login")
End If
Catch
Log(LastException)
resp.SendRedirect("/login")
End Try
End Sub