Crear una función Login Controller [Guía paso a paso]

Contenido del Bootcamp Dirigido por: | Última modificación: 26 de septiembre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Si estás buscando formas de agregar un sistema de autenticación a tu aplicación web o buscas mejorar tus habilidades en el uso de Laravel, has llegado al lugar correcto. En esta publicación, vamos a explorar el proceso de creación de una función Login Controller paso a paso.

Crear una función de control de inicio de sesión, comúnmente conocida como función Login Controller, es un aspecto fundamental en el desarrollo de cualquier aplicación web. Este componente clave de la seguridad en el lado del servidor se encarga de gestionar la autenticación de los usuarios, un proceso esencial para mantener seguros tanto los datos del usuario como los recursos del servidor.

Una función Login Controller bien diseñada no solo verifica las credenciales del usuario y concede o deniega el acceso en función de su validez, sino que también gestiona las sesiones de los usuarios, lo que les permite permanecer conectados durante un periodo de tiempo determinado.

Configuración de la base de datos

Antes de sumergirnos en el maravilloso mundo de Laravel y la autenticación, necesitamos poner en marcha nuestra base de datos. Para nuestro sistema de autenticación, vamos a necesitar una tabla de usuarios en nuestra base de datos, conocida comúnmente como la tabla ‘users’.

Si estás utilizando Laravel, tienes suerte. Laravel viene con un sistema de migración de bases de datos que simplifica este proceso. Para crear una nueva migración, simplemente necesitas ejecutar el comando php artisan make:migration create_users_table en tu terminal.

El siguiente paso es definir las columnas de nuestra tabla ‘users’. En el mínimo, necesitarás una columna para el correo electrónico del usuario y otra para su contraseña.

Schema::create('users', function (Blueprint $table) {
    $table->id();
    $table->string('email')->unique();
    $table->string('password');
    $table->timestamps();
});

Una vez que hayas definido la migración, puedes ejecutar el comando php artisan migrate para crear la tabla en tu base de datos.

Crear la función Login Controller

Ahora que nuestra base de datos está lista, es hora de pasar a la parte interesante: la creación de nuestra función Login Controller.

Antes de hacerlo, pensemos en lo siguiente: cuando un usuario intenta iniciar sesión en una aplicación web, introduce sus credenciales, por lo general un nombre de usuario o dirección de correo electrónico y una contraseña. Estos datos se envían al servidor, donde la función de control de inicio de sesión los compara con los datos almacenados en la base de datos del servidor. Si las credenciales son correctas, la función Login Controller inicia una nueva sesión para el usuario y le permite acceder a los recursos de la aplicación. Si las credenciales no son correctas, la función Login Controller rechaza el intento de inicio de sesión y puede incluso registrar este intento fallido para futuras referencias de seguridad.

Ahora sí, comenzaremos creando un nuevo controlador usando el comando php artisan make:controller LoginController.

Dentro de nuestro controlador, necesitamos crear una función para manejar el inicio de sesión. Esta función necesitará aceptar un request como parámetro, que usaremos para obtener los datos del formulario de inicio de sesión del usuario.

public function login(Request $request)
{
    // validamos los datos de entrada
    $credentials = $request->validate([
        'email' => ['required', 'email'],
        'password' => ['required'],
    ]);
    
    // intentamos iniciar sesión
    if (Auth::attempt($credentials)) {
        return redirect()->intended('dashboard');
    }
    
    // si el inicio de sesión falla, volvemos a la página de inicio de sesión
    return back()->withErrors([
        'email' => 'Las credenciales proporcionadas no coinciden con nuestros registros.',
    ]);
}

Con eso, ya tenemos una función básica de inicio de sesión. Por supuesto, esto es solo la punta del iceberg. Un sistema de autenticación completo también incluiría aspectos como el registro de usuarios, el restablecimiento de contraseñas y más.

Esto es solo el comienzo

Si quieres seguir formándote y mejorar tus habilidades de programación, te invitamos a unirte a nuestro Desarrollo Web Full Stack Bootcamp. Aquí no solo aprenderás sobre Laravel y la creación de sistemas de autenticación, sino que también obtendrás una visión completa del desarrollo web para convertirte en un experto en cuestión de meses. Esta formación íntegra e intensiva es una puerta de entrada a una nueva vida en el sector IT, una industria con una alta demanda de profesionales. ¡Anímate a pedir más información y cambia tu vida!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado