Laravel 5.4 #6 : Sistema de autenticación de usuarios

Hoy vamos a aprender a crear un formulario de login y registro que veremos que lo crea Laravel automáticamente solamente con un comando. También veremos como customizar el formulario añadiendo un nuevo campo y también verificaremos que solamente puedan hacer login los usuarios activos.

Crear sistema de autenticación

Laravel es capaz de generarte todo lo necesario para la autenticación de un proyecto (formularios, clases, rutas, etc.) simplemente con un comando y a partir de ahí podemos personalizarlo todo lo que queramos. Con esto, nos ahorramos muchísimo tiempo, ya que es una tarea que en casi todos los proyectos la tendríamos que hacer.

Veremos que se han creado muchos archivos, entre ellos unas vistas. Una de ellas es una layout y lo que voy a hacer va a ser extender las vistas que creamos anteriormente y las extendimos de un layout, cambiarlo por este. El cambio sería este:

Ahora tiene todo más o menos el mismo estilo, aunque faltarían retocar unas cosas, ya que no estoy utilizando clases de Bootstrap entonces se ve muy pegado a los márgenes. Pero fijándonos en las otras vistas, podemos adaptarlo fácilmente.

 

Modificar formulario registro

Para añadir un campo al formulario de registro, primero de todo tenemos que crear una migración para que se añada el campo a la tabla de la base de datos. Yo, por ejemplo, he decido poner el campo country, pero podéis poner cualquier cosa.

Abrimos el archivo y ponemos esto:

Ejecutamos la migración:

Ahora tenemos que añadir el campo al formulario ( resources/views/auth/register.blade.php ), añadimos este código después del bloque de correo:

Una vez está hecho esto, tenemos que añadirlo al método que lo comprueba y al que lo guarda.

Y finalmente, tenemos que indicar en el modelo que se podrá rellenar el campo country:

Con esto ya tendremos todo, se guardará en la base de datos al registrarnos y podremos acceder desde el objeto usuario o desde el objeto auth.

 

Comprobar si el usuario que hace login está activo

Si queremos que solamente puedan hacer login usuarios activos, primero de todo tenemos que crear una columna que sea para saber si está activo o no.

Abrimos el archivo y añadimos:

Lo ejecutamos:

Ya tenemos la columna en la base de datos, ahora sólo falta la comprobación que la tenemos que poner en el controlador del login. Añadimos el siguiente código que lo que hará será hacer la comprobación de que el usuario esté activo:

Ahora cuando vayamos a hacer login con un usuario que su columna active sea 0, nos dará un error. Estas comprobaciones también se podrían aplicar para otro tipo de cosas.

 

En la siguiente entrada, utilizaremos los middleware para restringir el acceso a alguna página si no estás logueado y explicaremos como crear uno personalizado.


Aloja tu proyecto en DigitalOcean: Obtén $200 de crédito gratis al registrarte a través de este enlace.

Si hay cualquier tipo de error en el post o te surge cualquier duda, no dudes en ponerlo en los comentarios o enviarme un correo desde la página de contacto.

? CONTACTAR

2 comentarios en “Laravel 5.4 #6 : Sistema de autenticación de usuarios

  1. Hola no sé por qué ya no hay comentarios desde hace varias entradas, lo cierto es que no todo me esta saliendo bien, espero que me pueda contestar.

    Me marca el siguiente error: «Trait ‘App\Http\Controllers\Auth\Illuminate\Http\Request’ not found»
    en use Illuminate\Http\Request; que coloqué en LoginController.php

    ¿Cómo se corrige?
    Gracias

    1. Hola Laura!
      Primero muchas gracias por tu comentario!

      El error que me comentas lo más seguro es porque has puesto en el lugar incorrecto el use Illuminate\Http\Request;.
      Seguramente lo has puesto dentro de la clase y va fuera de la clase después del namespace App\Http\Controllers\Auth;.

      Recuerda que puedes ver el código de todo en GitHub, te dejo aquí el enlace. También te dejo el enlace al LoginController.php.

      Un saludo, espero haberte ayudado!

Deja una respuesta

  Acepto la política de privacidad