You are on page 1of 3

Tutorial # 1: Usar el Componente Auth en un Login

Necesitaremos una tabla llamada 'users' en nuestra base de datos:


1. CAMPOS -----------------------------------Nombre: id ; Tipo :integer -Nombre: username ; Tipo :varchar -Nombre:password ; Tipo :varchar

2. Copiar el componente AUTH a nuestra aplicacion: De nuestra aplicacion copiamos el archivo auth.php que se encuentra en esta direccion \cake\libs\controller\components\hacia la carpeta \app\controllers\components\

En la carpeta \app\models\ creamos un archivo con el nombreuser.php y dentro de este escrimos el siguiente codigo:
<?php class User extends AppModel { var $name = 'User'; } ?> 4. Crear el controlador Users: En la carpeta \app\controllers\ creamos un archivo con el nombre users_controller.php y dentro de este escribimos el siguiente codigo: <?php class UsersController extends AppController{ var $name='Users'; //Agregamos el componente Auth var $components = array('Auth'); //Agregamos el helper Html var $helpers = array('Html'); /*accion que realiza el login por nosotros y nos redireccionara a la vista index despues de que nos logeemos correctamente*/ function login(){ $this->Auth->loginRedirect = '/users/index'; } //accion que realiza el logout por nosotros function logout(){ $this->redirect($this->Auth->logout()); }

3. Crear el modelo User:

/*accion que devuelve todos los datos de nuestra tabla users de la Base de datos a la vista index que crearemos despues*/ function index(){ $this->set('users', $this->User->find('all')); } ?>

5. Creamos la vista Login En la carpeta \app\views\ creamos la carpeta "users" y dentro de la carpeta "users" creamos el archivo login.ctp que sera el archivo de nuestra vista y copiamos el siguiente codigo en el archivo login.ctp : <?php //le indica a cake php que se prepare para la accion de logearse $session->flash('auth'); //creamos un formulario que llamara a la accion login del UserController echo $form->create('User',array('action'=>'login')); echo $form->input('username'); echo $form->input('password'); echo $form->end('Logeate'); ?>

6. Creamos la vista Index : En la carpeta \app\views\users\ creamos el archivo index.ctp y copiamos el siguiente codigo ,esta es la vista que se mostrara despues de que nos logeemos: <h1>LISTA DE USUARIOS</h1> <?php foreach($users as $user): ?> <h2><?php echo $user['User']['username'] ?></h2> <hr /> <?php echo $html->link('Logout', array('action'=>'logout')); ?> <br /> 7. Configuraciones extras: Abrimos el archivo auth.php que se encuentra en la carpeta \app\controllers\componentes\ y dentro del archivo buscamos: -Security::hash Aqui veremos una linea como esta: -return Security::hash($password, null, true); La modificamos para que quede asi: -return Security::hash($password, 'md5', false);

Guardamos y con esto indicamos que cuando creemos un usuario, su password sea encriptada con el algoritmo MD5. Entraremos a la base de datos y en nuestra tabla users crearemos un usuario: En username : barckley

En password : deebf9e3349f2100828605475b81bf4e (esa es la clave encriptada en MD5 que significa: tutorial1). Ahora si podemos probar nuestra aplicacion, en el navegador ponemos : http://localhost:81/nombredemiaplicacion/users/login En username : barckley En password : tutorial1

Si todo marcha bien debemos observa la vista index que nos mostrara una lista de los usuarios que tenemos registrados, en nuestro caso solo sera 1 usuario.

NOTA: Si creamos una accion con su vista respectiva para poder crear usuarios , El componente Auth nos encriptara las contraseas automaticamente, no tenemos que hacer nada nosotros.

You might also like