Componente de autenticación en CakePHP – Módulo de usuarios

La autenticación de usuarios es una parte común pero muy importante dentro de una aplicación web, para ello CakePHP nos proporciona el componente AuthComponent para realizar este tipo de tareas, este componente de autenticación nos provee formas flexibles de identificación y comprobación de los usuarios que acceden a nuestra aplicación.

Continuando con el curso de CakePHP vamos a trabajar en un nuevo apartado referente a la autenticación de usuarios dentro de nuestra aplicación del restaurante, para ello inicialmente tenemos que crear un módulo que nos permita gestionar nuestros usuarios. Vamos a trabajar este módulo desde cero para que así vayas conociendo paso a paso el trabajo de la identificación de los usuarios con CakePHP.

Vamos a trabajar con la clase BlowfishPasswordHasher que nos facilita el framework para encriptar las contraseñas de cada uno de los usuarios dentro de nuestra aplicación y para ello vamos a desarrollar la función beforeSave desde nuestro modelo el cual nos permite realizar distintas operaciones previa ejecución del controlador. Finalmente vamos a trabajar dentro de nuestro controlador AppController y explicar paso a paso la configuración del componente de autenticación.

Sin más te dejo con el video 21 donde te hablo de todo lo mencionado anteriormente y otras características más puestas a la práctica:

Ahora dime tú, qué te pareció el desarrollo de nuestro módulo de usuarios y la configuración del componente de autenticación? esta es la primera de dos partes donde desarrollaremos este módulo así es que te sugiero no te pierdas la próxima publicación en el blog donde te hablaré sobre la autorización de usuarios 8-) , por otro lado me gustaría mucho que me dejes todas tus impresiones en la sección de comentarios acá abajo.

Para finalizar lo único que te pido por favor es que compartas tanto este artículo como el video para que así mi trabajo llegue a muchas personas y puedan ser beneficiadas del mismo. Comparto el repositorio oficial en GitHub de todo lo avanzado en el video  para que tu mismo puedas probarlo, espero te sea muy útil 8-)

Sigue todas las lecciones del curso AQUÍ.

Saludos!!!

Repositorio oficial.

firma emm

38 respuestas a «Componente de autenticación en CakePHP – Módulo de usuarios»

    1. Hola Robi, mañana ya publico la segunda parte sobre autorización de usuarios, desde luego se trabaja con los roles que tu mencionas. Saludos y gracias a ti por comentar y seguir mi trabajo 8-)

    1. Hola Paola, estoy considerando hacer un tutotial en el Blog sobre el tema que mencionas ya que otros también lo sugirieron, pronto estaré publicando novedades. Saludos!!!

    2. Bueno, estaré esperando novedades. Tengo una duda con la integración de bootstrap la aplicación se vuelve responsive, pero cuando agrego lo que es la parte de los usuarios ya esta tiene su propia plantilla y menú este menú se pone encima del menú que contiene todas la información de los cocineros, meseros, etc. Cuando muevo la pantalla del navegador y lo reduzco de tamaño solo sale el menú de las opciones y desaparece el menú que contiene el formulario para ingresar usuario y contraseña. Por que sale eso?.

      1. Hola Paola, no te tendría que permitirte siguiera reducir el tamaño, revisa si tienes correctamente definido el viewport en tu layout. Saludos!

  1. Gracias por seguir compartiendo tus magníficos vídeos y por seguir siendo un referente en cuanto al aprendizaje de CakePhp en español. Aunque ya hace tiempo desarrollé un manejo de usuarios, siempre es bueno cotejar con lo que hace alguien con más experiencia que uno, para aprender cosas nuevas.
    Un saludo desde México.
    PD: También ya estoy revisando tus nuevas publicaciones sobre CakePhp 3, seguramente serán muy útiles.

    1. Hola Ricardo, me alegra que el contenido que estoy compartiendo te sea útil, agradecido yo también ya que con comentarios así uno siente que esta haciendo un buen trabajo. Saludos!!!

  2. Excelente video. Me sirvió muchísimo. Te agradezco por compartirlo con nosotros.

    Quisiera preguntarte donde puedo acceder a la plantilla de la acción «login» que mostraste en el minuto 41:30 del video.

    Muchas gracias nuevamente.
    Saludos.

    1. Hola Ricardo, te agradezco por el comentario y me agrada que el curso te sea útil. Respecto a tu duda la plantilla de login es una plantilla básica de Bootstrap similar a esta http://getbootstrap.com/examples/jumbotron/ de todas formas en el repositorio oficial del proyecto restaurante ya encuentras la vista login desarrollada https://github.com/edsonmgoz/restaurante/blob/master/app/View/Users/login.ctp puedes también guiarte de eso 8-) Saludos!!!

  3. Hola Edson, estoy siguiendo todos tus videos y fueron de mucha utilidad . Pero esta vez no puedo hacer que funcione la autenticar los usuarios. una vez que cargo el usuario en la vista «login» la misma no hace un redirect a la vista de users ->index . Me fije y en el appcontroller esta bien definido tal como lo muestras en el vídeo.

    la url me queda asi (imagen)

    http://localhost:8080/cakephp/?_method=POST&data%5BUsers%5D%5Busername%5D=gmorali&data%5BUsers%5D%5Bpassword%5D=ceicom2006#

    y no me va al menu ..

    Desde ya muchas gracias !! por todas tus clases !!

  4. Buenas tardes Ing. Edson de antemano muchas gracias por comparter sus conocimientos, todos los vídeos y la forma de explicar en cada uno de ellos. Soy nuevo en el uso de esta herramientas y gracias a este curso he decidido cambiar mi paradigma de programar. Tuve algunos inconvenientes en algunas partes del curso y decidí descargar el código (para comparar con el mio) desde el repositorio, descargue el cakephp 2.5.4 (¿Que usa en su curso?) y al colocarlo en la carpeta raiz del xampp (htdocs) me genera diferentes errores, revisando en app/Config no aparece el archivo de configuracion de la base de datos. Lo que no se es si esta se encuentra en otra parte de la aplicacion, y en uno de sus post de el curso usted comparte también la base de datos que igual no se en que parte del archivo se encuentra. Disculpe las molestias y muchas gracias por esfuerzo y trabajo.

    1. Hola Saul, primeramente agradecido por tu comentario y me agrada que el curso te sea útil, respecto a tus dudas: puedes utilizar un archivo de configuración de un proyecto en limpio de CakePHP y lo configuras de acuerda a la conexión a tu base de datos, sobre la base de datos lo desarrollamos paso a paso a lo largo del curso por eso no lo vi oportuno subirlo. Saludos!!!

  5. Quisiera saber si algun problema que la tabla para la autenticacion no se llame ‘Users’ sino ‘Entidades’ u otro nombre. Que cambios habria que hacer para que acepte la nueva tabla?

  6. Edson, me podrias hacer un favor: Como hace para que ‘View’ muestre la contraseña sin encriptación (algo asi como ‘BeforeView’)?

    1. Hola Angela, hasta donde yo se no se tiene esa opción, es más, sería algo inseguro por parte de la aplicación, si deseas recuperar un campo diferente considera tener una columna dentro de tu bd para ello. Saludos!

      1. Tienes razon tocara tener otra columna porque a veces los usuarios se le olvidan las contraseñas y el administrador necesita enviarlas por correo…

        1. Para el caso que mencionas te lo desaconsejo totalmente porque: Primero ni el administrador ni la aplicación como tal puede saber las contraseñas de los usuarios, es por ello que en el curso lo encriptamos antes de guardarlo y segundo que si alguno de los usuarios quiere recuperar su contraseña lo mas aconsejable es que lo restaure por otra. Saludos, toma en cuenta lo que te dije por favor y no trates de aplicar como tu lo mencionas.

  7. Hola Angela, es lo mismo que hicimos con los platillos y meseros, implementa la relación con noticias y si en index() de users estás recuperando los datos tanto de usuarios como de noticias suficiente con que le des autorizacion a la acción index(), Saludos

  8. Edson, buenas!! Esto funciona igual para CakePHP3? Lo has probado?
    Estoy justo trabado con ese tema en dicha versión, y no puedo avanzar. Slds!

    1. Hola Ariel, hay algunas variaciones pero ayudándote con la documentación y basándote en esta lección puedes lograrlo, de todas formas tengo contemplado implementarlo en el nuevo curso de CakePHP 3

  9. Buenos dias inge, me gusta mucho el curso pero tengo una pregunta, como hago para que, en el caso de que ingrese un usuario tipo (user) me redirija a su vista del usuario, y no asi a la lista de platillos. es decir que un mesero tenga su cuenta tipo user y me redirija a la vista de dicho mesero. desde ya muchas gracias por su respuesta.

    1. Hola Rebeca, puedes validar eso en la acción login, si viste la parte de autorización de usuarios puedes recuperar los datos del usuario autenticado dentro del controlador, entonces a partir de eso puedes recuperar el rol y crear una redirección. Saludos!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *