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]

[/php]


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:

[php] 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ó”); } } } [/php]

En la linea

[php] if (Input::hasPost(“login”,“password”)) [/php]

Verificamos que se reciban datos desde el formulario. Luego guardamos los valores recibidos de los campos en 2 variables:

[php] $pwd = Input::post(“password”); $usuario=Input::post(“login”); [/php]

Luego se crea una nueva instacia de la clase Auth pasandole como parametros el modelo “usuarios”, y la variables anteriores. Y con la linea

[php] if ($auth->authenticate()) [/php]

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] [/php]

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 :

[php] if(Auth::is_valid()){ Flash::success(“Usuario logueado”); } [/php]

Y tambien podemos saber los otros datos de la tabla usuarios asi:

[php] $this->telefono=Auth::get(‘telefono’); $this->edad=Auth::get(‘edad’); [/php]

Y por ultimo para desloguear a un usuario se debera usar:

[php] Auth::destroy_identity(); [/php]

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 :)