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

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 View::content(); ?><br /> Inicio de Session <br/> <?php echo form_tag("principal/login"); ?> <label for="login">Usuario:</label> <?php echo text_field_tag("login"); ?> <br/> <label for="password">Clave:</label> <?php echo password_field_tag("password"); ?> <br/> <?php echo submit_tag("Ingresar"); ?> <?php echo end_form_tag(); ?></p>
Como veran es un simple formulario con 2 campos: login y password. En el controlador tendremos la accion(funcion) que atendera a ese formulario.
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ó"); } } }
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:
if(!Auth::is_valid()){ $this->redirect("principal/login"); }
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:
$this->telefono=Auth::get('telefono'); $this->edad=Auth::get('edad');
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.
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
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:

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:
</p> <p><?php View::content(); ?><br /> Inicio de Session <br/><br /> <?php echo form_tag("principal/login"); ?><br /> <label for="login">Usuario:</label><br /> <?php echo text_field_tag("login"); ?><br /> <br/></p> <p><label for="password">Clave:</label><br /> <?php echo password_field_tag("password"); ?><br /> <br/></p> <p><?php echo submit_tag("Ingresar"); ?><br /> <?php echo end_form_tag(); ?></p> <p>
Como veran es un simple formulario con 2 campos: login y password. En el controlador tendremos la accion(funcion) que atendera a ese formulario.
function login(){<br /> if ($this->has_post("login","password")){<br /> $pwd = $this->post("password");<br /> $usuario=$this->post('login');<br /> $auth = new Auth("model", "class: usuarios", "nombre: $usuario", "password: $pwd");<br /> if ($auth->authenticate()) {<br /> $this->redirect("principal/index");<br /> } else {<br /> Flash::error("Falló");<br /> }<br /> }<br /> }
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:
if(!Auth::is_valid()){<br /> $this->redirect("principal/login");<br /> }
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:
$this->telefono=Auth::get('telefono');</p> <p>$this->edad=Auth::get('edad');</p> <p>
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.
Aqui fallo el akimset :P
La verdad es que no conocía KumbiaPHP pero se ve bastante interesante y prometedor.
muy bien sencillo y practico, :up:
Excelente sefsinalas, buen tuto…. :up:
gracias :) pero me pregunto como supiste que mi nick es sefsinalas si en el post solo dice ‘perro’
estoy que empiezo con kumbia y espero me respondas esta pregunta q qizas sea facil para ti, como es que creas la tabla y en que parte va??? estuve leyendo algo de ActiveRecord pero no enntedi mucho, espero respondas
Como crear la tabla? Pues la tabla la creas con phpmyadmin.
Tambien deberas crear el modelo correspondiente en la carpeta models. Eso tambien ya lo explique y esta en alguno de los post que hice sobre kumbia
https://paraisolinux.com.ar/category/desarrollo/kumbiaphp/
Saludos
El post esta muy bien, aunque considero que publicar algo fallo no es correcto, por falta del modelo, indicas una url generalizada en vez de el link exacto para referencia a ello.
Una critica constructiva, saludos :)
Buenas,
una pequeña mejora.
Cambia:
if(!Auth::is_valid()){
$this->redirect(«principal/login»);
}
por:
Auth::is_valid() or $this->redirect(«principal/login»);
más fácil todavia.
gracias joanhey por darte una vuelta y ayudarme :up:
Hola como estas he me e estado paseando por tu blog checando los tutos que tienes llegue aqui por un tuto de JavaFX lol bueno comento lo siguiente yo actualmetne estoy desarrollando con la competencia CakePHP y habia escuchado algo sobre KumbiaPHP y de echo le hice una pequeña pero muy peke testeada y pues se que Kumbia es puramente Latino y eso esta excelente boy a darle una testeada, aver que honda me boy a suscrivir a tu RSS a uso Opensuse :smile: Gnu/Linux asi k hablamos el mismo idioma hehehehe sale pues echale ganas
Pues para mi cada framework tendra sus cosas buenas y malas….pero KumbiaPHP es perfecto! :P
Estoy hechandole un ojo a tu portal, yo me inicie con SuSE 8.0 :oops: y para mi nunca va a dejar de ser la mejor distro del mundo, lamentablemente todo es mas facil de hacer en Ubuntu aunq sacrificando un poco de calidad.
hola… muy bueno el tuto… gracias… lo usare esta noche y te cuento como me fue… por el momento.. gracias
[…] mucho publique un tuto de un sistema de login para kumbiaphp y queria mostrar como hacerlo ahora con la beta2 de […]