Estos ultimos dias he aprendido mucho sobre KumbiaPHP , aprendi de la wiki, el manual y en especial en el IRC de KumbiaPHP. Y quiero ir colocando aqui en el blog lo que voy aprendiendo por 2 razones: Una que me gusta compartir mis conocimientos y otra que asi yo lo tengo de ayuda memoria :P

Vamos a crear un sistema para el login de usuarios usando la clase Auth , quiero aclarar que estoy usando la version Spirit de KumbiaPHP que la pueden bajar de aqui. Entonces lo primero sera abrir el archivo boot.ini que se encuentra en la carpeta config de nuestra aplicacion e indicarle que debe cargar la libreria auth , el archivo deberia quedar algo asi:

[php][modules] libs = auth [/php]

Nuestra base de datos sera algo sencilla:

Tabla Usuarios

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] Inicio de Session
Usuario:
Clave:

[/php]

Como veran es un simple formulario con 2 campos: login y password. En el controlador tendremos la accion(funcion) que atendera a ese formulario.

[php]function login(){ if ($this->has_post(“login”,“password”)){ $pwd = $this->post(“password”); $usuario=$this->post(‘login’); $auth = new Auth(“model”, “class: usuarios”, “login: $usuario”, “password: $pwd”); if ($auth->authenticate()) { $this->redirect(“principal/index”); } else { Flash::error(“Falló”); } } }[/php]

Como veran la clase auth nos ahorra a nosotros las verificaciones de todo tipo sobre si ingreso bien el password o no y si el usuario existe o no. En caso de que el ingreso sea correcto redirigimos al usuario a otra pagina y en caso de que sea incorrecto mostramos un mensaje de error.

Pero no pensaran que la utilidad de Auth acaba ahi verdad? Podemos…


Restringir paginas solo a usuarios logueados

Si por ejemplo queremos restringir alguna vista a solo usuarios logueados podemos usar:

[php]if(!Auth::is_valid()){ $this->redirect(“principal/login”); }[/php]

Auth::is_valid() nos devuelve true si es que el usuario esta logueado, nosotros aprovechamos eso y si por ejemplo queremos restringuir una vista o accion solo a usuarios logueados pondriamos estas lineas al comienzo de la accion correspondiente, de manera que si no esta logueado lo redirija a la pagina con el formulario de login.

Obtener datos de usuarios logueados

Como podran ver en la tabla de usuarios que les comentaba al principio hay 2 campos que no se usan para el sistema de login pero podrian necesitarse en cualquier otra parte de la aplicacion. Auth tambien nos facilita el obtener esos datos, si quisieramos obtener esos datos del usuario simplemente hariamos asi:

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

De otra manera deberiamos hacer un find() al nombre de usuario, pero como veran auth nos facilita todo pues con Auth::get(‘nombre_campo’) podremos obtener cualquier campo de la tabla que estamos usando para los usuarios.

Obviamente a este sistema de login le faltan algunas cosas. Pero creo que es lo basico para entender el funcionamiento de Auth con KumbiaPHP.

Actualizacion: cree otro tutorial adaptado a la beta2 y superiores de kumbiaphp. Pueden [verlo aqui](https://paraisolinux.com/sistema-de-login-con- kumbiaphp-spirit/).

Estos ultimos dias he aprendido mucho sobre KumbiaPHP , aprendi de la wiki, el manual y en especial en el IRC de KumbiaPHP. Y quiero ir colocando aqui en el blog lo que voy aprendiendo por 2 razones: Una que me gusta compartir mis conocimientos y otra que asi yo lo tengo de ayuda memoria :P

Vamos a crear un sistema para el login de usuarios usando la clase Auth, quiero aclarar que estoy usando la version Spirit de KumbiaPHP que la pueden bajar de aqui. Entonces lo primero sera abrir el archivo boot.ini que se encuentra en la carpeta config de nuestra aplicacion e indicarle que debe cargar la libreria auth, el archivo deberia quedar algo asi:

[modules] libs = auth

Nuestra base de datos sera algo sencilla:

Tabla Usuarios

Vamos a tener un controlador llamado principal_controller.php con 2 acciones, index y login. Y tendremos 2 vistas correspondientes a esas acciones.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]

Inicio de Session

Usuario:

Clave:

[/php]

Como veran es un simple formulario con 2 campos: login y password. En el controlador tendremos la accion(funcion) que atendera a ese formulario.

[php]function login(){
if ($this->has_post(“login”,“password”)){
$pwd = $this->post(“password”);
$usuario=$this->post(‘login’);
$auth = new Auth(“model”, “class: usuarios”, “nombre: $usuario”, “password: $pwd”);
if ($auth->authenticate()) {
$this->redirect(“principal/index”);
} else {
Flash::error(“Falló”);
}
}
}[/php]

Como veran la clase auth nos ahorra a nosotros las verificaciones de todo tipo sobre si ingreso bien el password o no y si el usuario existe o no. En caso de que el ingreso sea correcto redirigimos al usuario a otra pagina y en caso de que sea incorrecto mostramos un mensaje de error.

Pero no pensaran que la utilidad de Auth acaba ahi verdad? Podemos…

Restringir paginas solo a usuarios logueados

Si por ejemplo queremos restringir alguna vista a solo usuarios logueados podemos usar:

[php]if(!Auth::is_valid()){
$this->redirect(“principal/login”);
}[/php]

Auth::is_valid() nos devuelve true si es que el usuario esta logueado, nosotros aprovechamos eso y si por ejemplo queremos restringuir una vista o accion solo a usuarios logueados pondriamos estas lineas al comienzo de la accion correspondiente, de manera que si no esta logueado lo redirija a la pagina con el formulario de login.

Obtener datos de usuarios logueados

Como podran ver en la tabla de usuarios que les comentaba al principio hay 2 campos que no se usan para el sistema de login pero podrian necesitarse en cualquier otra parte de la aplicacion. Auth tambien nos facilita el obtener esos datos, si quisieramos obtener esos datos del usuario simplemente hariamos asi:

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

$this->edad=Auth::get(‘edad’);

[/php]

De otra manera deberiamos hacer un find() al nombre de usuario, pero como veran auth nos facilita todo pues con Auth::get(‘nombre_campo’) podremos obtener cualquier campo de la tabla que estamos usando para los usuarios.