Recientemente tuve necesidad de implementar un Sistema de Login con KumbiaPHP y pude percatarme que prácticamente todas las referencias publicadas en la comunidad de Kumbieros se encuentran bastante desactualizadas; algunas hasta por casi una década. De manera que, me pareció adecuado compartir una sencilla solución que implemente con la versión actual de KumbiaPHP v1.1.5
Para comenzar, vale la pena señalar que no pretendo descubrir el agua tibia, esta solución no es más que la recopilación y conveniente ajuste de varias aportaciones encontradas en diferentes fuentes disponibles en la red. Pero tampoco hagamos alharaca de eso y vayamos a lo concreto.
Construyendo el Sistema de Login
Librería de Autenticación
Si bien es cierto que en KumbiaPHP v1.1.5 contamos con Auth2 e incluso con una implementación propia en Kumbia_Auth para facilitar las tareas de autenticación de usuarios, en esta solución haremos uso de la libreria Auth.

Persistencia de datos
Por supuesto que cada solución tendrá necesidades específicas; pero en nuestro caso, hemos procurado mantener la total simplicidad, de manera que para la persistencia de datos nos resulta suficiente disponer de una tabla como la que podemos generar con el siguiente script
--
-- Estructura de tabla para la tabla usuarios
--
DROP TABLE IF EXISTSusuarios
; CREATE TABLE IF NOT EXISTSusuarios
(id
TINYINT(3) NOT NULL AUTO_INCREMENT,login
VARCHAR(50) NOT NULL,password
VARCHAR(50) NOT NULL,level
TINYINT(3) NOT NULL, PRIMARY KEY (id
), UNIQUE KEY `UK_Usuarios_login` (`login`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Volcar la base de datos para la tabla usuarios
--
INSERT INTOusuarios
(id
,login
,password
,level
) VALUES (1, 'coloca-aqui-tu-usuario', 'coloca-aqui-tu-password', 1);

Tampoco hemos de fijarnos para este ejercicio en la falta de encriptación de la columna que almacenará los passwords. Aunque por supuesto, es una practica que recomendamos considerar.
Modelo
Nuestra clase de modelo será tan sencilla como
<?php class Usuarios extends ActiveRecord { }
Controlador
En un controlador que como otros autores hemos nombrado PrincipalController hemos implementado las funciones login y logout, junto con el siempre mandatorio index, que en nuestro caso, mantenemos vacío.
Login
La función de login inicia con la verificación de los datos recibidos, antes de enviarlos a la librería Auth para la ejecución de la autenticación.
public function login(){ if (Input::hasPost("login","password")){ $pwd = Input::post("password"); $usuario=Input::post("login"); $auth = new Auth("model", "class: usuarios", "login: $usuario", "password: $pwd"); if ($auth->authenticate()) { Redirect::to("/"); } else { Flash::error("Falló"); } } }
Logout
En la función logout, básicamente destruimos el objeto de la sesión
public function logout(){ Auth::destroy_identity(); Redirect::to("/"); }
Vista
Por supuesto que, hemos mantenido la capa de vista igualmente simple, aunque claro que necesitaremos construir nuestro formulario de ingreso.

El index.phtml como ya hemos mencionado lo mantenemos vacío. Y aunque presuntamente el logout.phtml pudiera haberse mantenido igualmente vacío, la verdad le hemos colocado…
<?php echo View::content(); ?>
No haremos de ello un tema, solo pasemos a lo interesante. Que por supuesto, es el login.phtml.
En este archivo, además del clásico…
<?php echo View::content(); ?>
Hemos de colocar nuestro formulario
<?php echo F<?php echo Form::open("principal/login"); ?> <i class="fas fa-user-alt"></i><?php echo Form::label("Usuario","login"); ?> <?php echo Form::text("login"); ?> <?php echo Form::label(" "," "); ?> <i class="fas fa-key"></i><?php echo Form::label("Password","password"); ?> <?php echo Form::pass("password"); ?> <?php echo Form::label(" "," "); ?> <?php echo Form::submit("Ingresar"); ?> <?php echo Form::close(); ?>
Con lo cual ya tendremos implementado nuestro simple sistema de login en KumbiaPHP v1.1.5, pero ahora toca usarlo.