Servicios de desarrollo

Sistema de login con KumbiaPHP spirit

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:

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

perro

Ingeniero en Informática. Programador en PHP y Angular. Lo que mas adoro en el mundo es el conocimiento. Y el anime....y Japón...y el running...y bloguear claro y algunas otras cientos de cosas. Sigo buscando la manera de hacer mi primer millón.

13
Comenta!

avatar
trackback

[…] Actualizacion: cree otro tutorial adaptado a la beta2 y superiores de kumbiaphp. Pueden verlo aqui. […]

CaChi

Buenas, si me das un feed del tag de KumbiaPHP de los post de tu blog será fácil hacerte aparecer en el planeta, he visto que tienes varias… la que mas te convenga por fa pasala…

Dennis Andres

Hola Eduardo, yo hace poco hice un post sobre como hacer el login pero no contra una BD sino utilizando un servidor SMTP, el clasico que te dan los Hosting, revisalo y si tienes algun alcance por favor me avisas.

http://dairdev.blogspot.com/2010/10/kumbiaphp-login-de-la-aplicacion.html

Informesypedidos
Informesypedidos

hola queria saber si se puede hacer un index o pantalla a la cual puedan entar solo poniendo un codigo exacto eje: 4141 y si no ponen eso que SIGA PARTICIPANDO.. gracias! 

Anonymous
Anonymous

Pues es bastante sencillo. Solo debes tener un formulario comun y luego al capturar los datos del campo de texto lo comparas con 4141, si es igual que lo rediriges a una pagina y sino a otra 

Facer03
Facer03

Buenas, estoy construyendo una pequeña aplicación web usando el framework kumbiaphp y me surge un problema. Tengo montado un kumbiaphp 1.0 sobre un servidor apache en archlinux pero cuando visualizo la página en el navegador el código php no se ejecuta, se que no es lugar para preguntar pero no encuentro nada similar en la web.

Gracias por cualquier ayuda.

Anonymous
Anonymous

Puedes poner una captura del error? Tal vez te pueda ayudar pero no entiendo bien que es lo que pasa.

De todos modos, en los foros y en el irc de kumbia saben muchisimo mas que yo :P

Rodrigo
Rodrigo

no entiendo donde es que debería ir cada archivo, ademas veo que te faltaron etuquetas como
si pudieras dejarlo mas claro te lo agradeceria, el post esta orientado a alguien que ya aya trabajo con el framework

Saludos

sefsinalas

Al inicio del articulo hay 2 enlaces para ir a la parte donde se explican pasos anteriores. Por ejemplo donde va cada archivo.