El verdadero rico no es el que tiene mucho dinero sino el que tiene tiempo para estar con la gente que quiere y hacer lo que le gusta.

Autenticación de usuarios en CakePHP 3

Componente de autenticación de usuarios en CakePHP 3

Publicado el 4 julio, 2016 por | Categoría:

Una de las funcionalidades más comunes dentro de una aplicación web es gestionar a los usuarios bajo un sistema de autenticación, de tal forma estos usuarios puedan acceder al contenido de la aplicación bajo una cuenta que puede estar conformado por un nombre de usuario o correo electrónico y también una contraseña. CakePHP tiene incorporado un potente componente de autenticación para cubrir todas estas necesidades y es lo que vamos aprender en esta nueva lección del curso.

Vamos a partir explicando el propósito del archivo AppController.php ya que es en este mismo que implementaremos toda configuración del componente de autenticación, así mismo vamos a ir creando las acciones login, home y logout que nos va permitir manejar todas las tareas que forman parte de la autenticación de usuarios. Espero que esta nueva lección te guste mucho y así también conozcas uno mas de los beneficios que nos traer aprender un framework como CakePHP 3.

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

Notas adicionales:

– Conoce más del componente de autenticación en la documentación oficial:

http://book.cakephp.org/3.0/en/controllers/components/authentication.html

– La estructura y estilos de la vista login lo obtuvimos gracias a un snippet compartido por el usuario ninjamonk en la web de bootsnipp.com

http://bootsnipp.com/snippets/featured/mix-amp-match-login

No olvides que en la siguiente lección vamos a trabajar con la parte de autorización de usuarios, de esa manera ya contaremos con un sistema completo para gestionar los usuarios de nuestra aplicación. Por favor si te gustó y te fue útil esta lección compártelo en tus redes sociales para que mi trabajo llegue a mas personas, ya por último invitarte también a dejar tu comentario acá abajo así me cuentas como te fue a ti implementando el componente dentro de tu aplicación.

Sigue todas las lecciones del curso AQUÍ.

Saludos!!!

firma emm

 


Repositorio oficial

¿Te gustó el artículo? ¡Suscríbete ahora mismo!

Recibe mis últimos artículos, recursos, tutoriales y mucho más.

,

Comentarios

  • Julian Niño

    Buenas, hola Edson, están buenos los tutoriales y gracias por ello.
    Si es posible pedirte ayuda, tengo un error, al presionar el boton “Acceder” en el login, me aparece el error:
    SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘pocake.users’ doesn’t exist

    Please try correcting the issue for the following table aliases:
    Users

    Lo único que cambie fue el nombre de la tabla Users a Usuarios, hasta el video 8, listaba usuarios y los creaba, pero al llegar aquí…ya repetí el vídeo y me vuelve a generar el error, pego la funcion login() de la clase UsuariosControler.php:

    public function login()
    {
    if($this->request->is(‘post’)) {
    $usuario = $this->Auth->identify();
    if($usuario) {
    $usuario = $this->Auth->setUser($usuario);
    return $this->redirect($this->Auth->redirectUrl());
    }
    else {
    $this->Flash->error(‘Datos son inválidos, por favor intente nuevamente’, [‘key’ => ‘auth’]);
    }
    }
    }

    Muchas gracias !!

    • Edson

      Es posible cambiar tu tabla pero hay que tener cuidado en cambiar el nombre en unos cuantos lugares de tu aplicación. Para no extenderme tanto te aconsejo que definas tus tablas en ingles y así vas a la par de las convenciones del framework y te ahorras también en aspirinas. Saludos.

      • Julian Niño

        Muchas gracias por la atención y rápida respuesta !!, espero arreglarlo. No sabía que es una convención de Cakephp usar inglés :O

        • Edson

          No te dije exactamente eso, puedes utilizar tus tablas en español pero yo solo te dí el consejo de que lo manejes en ingles ya que así podrás manejar ciertos componentes como el de autenticación sin que se convierta en un dolor de cabeza ya que por defecto este componente trabaja con una tabla ‘users’ .

          • Julian Niño

            Recibo el consejo y adoptare el ingles :) …. ya solucione mi error, para efectos de pruebas, cambie la tabla a ingles Users, y ahora, generaba un error “Authentication adapter “finder” was not found. “, pero, elimine la linea ‘finder’ => ‘auth’ de AppController.php y funciono !!!! no entiendo muy bien, es como si faltara importar la librería o si no existiera finder…. ahora intento es hacer que halla una pagina de inicio un home público ya que al cargar la página va siempre a login…

  • jorge e

    Edson amigo , ya he solucionado mis problemas anteriores , no se por que siempre me suceden errores trato de ser lo mas cuidadoso posible y trato siempre de hacer las cosas tal cual usted las hace, ahora se me presento un incoveniente el cual es el siguiente ahora no puede acceder a otra ruta que sea la de login, es decir, si coloco users/add o users/index igual me direcciona es users/login y la otra cosa asi ponga el usuario que ponga igual me dice que es incorrecto

    • Edson

      Hola Jorge, lo que me comentas puede suceder por varios factores, no te desanimes tienes el video a tu disposición de manera libre y lo puedes ver las veces que quieras, trata de seguirlo con mas detalle, quizá solo son pequeños detalles que se te escapan. Saludos.

  • dormoxsis .

    Hola Edson, tengo una duda ya que no encuentro que puede pasar, mira hago tal cual tu tutorial, salvo que los campos míos se llaman ‘username’ => ‘rut_users’,
    ‘password’ => ‘clave_users’

    y lo demás tengo todo igual a tu código cuando hago la prueba siempre me aparece el mensaje “datos son invalidos”, no e que podra ser

    • Edson

      Puede ser por varias razones, puedes revisar si las contraseñas están correctamente encriptadas , también revisar bien la configuración del componente (tienes a tu disposición el código de todo el proyecto). Saludos.

  • Josmar Eduardo Torres Aguilar

    Saludos a mi me pasaba lo mismo que el comentario anterior. Tengo los usuarios guardados dentro de una tabla llamada usuarios y a pesar de asignad el userModel y fields, no lograba autenticar. Mi solucion aunque no muy optima fue crear una vista en la base de datos llamada users (no podia modificar el nombre de la tabla debido a regulaciones en la empresa) con alias en los campos username y password para ajustarme a las convenciones y asi resolvi el problema

    fue necesario crear un modelo de la vista users pero con el bake toma solo 10 seg.

    Espero a alguien le sea de utilidad aunque no es la mejor solucion a mi me funciono.