Hace mucho publique un tuto de un sistema de login para kumbiaphp y queria mostrar como hacerlo ahora con la beta2 de kumbiaphp.
Vamos a hacer uso de la libreria Auth que sirve justamente para facilitar toda esta tarea de autenticacion de usuarios.
Vamos a suponer que tenemos una tabla como la siguiente:
Vamos a tener un controlador llamado principal_controller.php con 2 acciones: index y login. Y tendremos 2 vistas correspondientes a esas acciones. Ya saben que index siempre va, aunque en este ejemplo no la vamos a usar para nada.
Lo primero para que los usuarios se logueen sera un formulario de logueo, entonces creamos el archivo login.phtml en la carpeta views/principal que contendra el siguiente codigo:
<?php echo View::content(); ?>
<?php echo Form::open("principal/login"); ?>
<?php echo Form::label("Usuario","login"); ?>
<?php echo Form::text("login"); ?>
<?php echo Form::label("Password","password"); ?>
<?php echo Form::pass("password"); ?>
<?php echo Form::submit("Ingresar"); ?>
<?php echo Form::close(); ?>
Es solo u formulario con 2 campos: login y password. En este archivo podemos ver varios cambios con respecto al tuto anterior. Esa es la forma de crear un formulario en beta2 y en las futuras versiones. Pueden ver mas sobre la clase para el manejo y creacion de formularios en la wiki de kumbiaphp.
Ahora vamos a crear la accion “login” en el controller “principal” con el siguiente contenido:
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()) {
Router::redirect("principal/index");
} else {
Flash::error("Falló");
}
}
}
En la linea
if (Input::hasPost("login","password"))
Verificamos que se reciban datos desde el formulario.
Luego guardamos los valores recibidos de los campos en 2 variables:
$pwd = Input::post("password");
$usuario=Input::post("login");
Luego se crea una nueva instacia de la clase Auth pasandole como parametros el modelo “usuarios”, y la variables anteriores. Y con la linea
if ($auth->authenticate())
podran saber si la autenticacion fue correcta o si hubo un error en el usuario o la pass.
Y no deben olvidarse de crear el modelo usuarios.php en la carpeta models con el siguiente contenido:
<?php
class usuarios extends ActiveRecord{
}
?>
Hay otras utilidades que podemos darle a la clase Auth, por ejemplo en cualquier controller y cualquier accion pueden saber si hay un usuario logueado con el simple uso de :
if(Auth::is_valid()){
Flash::success("Usuario logueado");
}
Y tambien podemos saber los otros datos de la tabla usuarios asi:
$this->telefono=Auth::get('telefono');
$this->edad=Auth::get('edad');
Y por ultimo para desloguear a un usuario se debera usar:
Auth::destroy_identity();
Que anulara la login actual.
Tambien me cuando me pase por el IRC de kumbiaphp vi que existen otro metodos para crear un sistema de login, recomiendo que entren y pregunten alli porque hay mucha gente que sabe….y yo


Pingback: Sistema de usuarios en KumbiaPHP | Paraiso Linux