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