This website uses cookies

Our website, platform and/or any sub domains use cookies to understand how you use our services, and to improve both your experience and our marketing relevance.

Cómo configurar la autenticación de inicio de sesión de Laravel en 2025 [Pasos fáciles]

Updated on julio 10, 2025

11 Min Read

Puntos clave:

  • Laravel ofrece varios métodos de autenticación, como la autenticación basada en contraseñas, en tokens y en múltiples factores, lo que permite a los desarrolladores elegir el que mejor se adapte a las necesidades de seguridad de su aplicación.
  • Implementar la autenticación en Laravel implica configurar migraciones de bases de datos, configurar rutas y controladores, y personalizar vistas para crear una experiencia de inicio de sesión segura y fácil de usar.
  • Laravel proporciona herramientas y paquetes integrados como Breeze, Jetstream, Sanctum y Fortify que simplifican el proceso de autenticación y mejoran las medidas de seguridad.

Imagina un escenario en el que tu aplicación requiera un sistema de inicio de sesión fiable y seguro para proteger los datos de los usuarios, restringir el acceso a los usuarios autorizados y proporcionar una experiencia de usuario fluida. Laravel, conocido por su elegante sintaxis y sus completas funciones, ofrece una serie de métodos de autenticación que se adaptan a los requisitos específicos de tu proyecto.

Con las funcionalidades de autenticación integradas y los potentes paquetes de Laravel, puedes crear una base sólida para la autenticación de usuarios sin reinventar la rueda. Eleva tus medidas de seguridad con la destreza del alojamiento gestionado de Laravel, garantizando una experiencia de usuario sin fisuras.

Este blog explorará los conceptos clave y los pasos de implementación para configurar la autenticación de inicio de sesión de Laravel y las mejores prácticas para ayudarte a establecer un sistema de inicio de sesión seguro y fácil de usar en poco tiempo.

Diferentes enfoques para la autenticación en Laravel

Cuando se trata de configurar la autenticación de inicio de sesión en Laravel, hay varios métodos disponibles que satisfacen diferentes requisitos de autenticación.

Laravel, al ser un potente framework PHP, proporciona a los desarrolladores flexibilidad y opciones para elegir el método de autenticación que mejor se adapte a las necesidades de su proyecto.

Alojamiento gestionado Laravel: Eleva tu experiencia web

Di adiós a las complejidades del hosting. El alojamiento gestionado de Laravel de Cloudways se encarga de los aspectos técnicos, para que puedas centrarte en crear experiencias web extraordinarias.

Exploremos un par de los métodos de autenticación más utilizados en Laravel.

Autenticación basada en contraseña

La autenticación basada en contraseña es un método comúnmente utilizado para la autenticación de usuarios, en el que los usuarios verifican su identidad proporcionando un nombre de usuario y una contraseña. Laravel, al ser un framework PHP versátil, proporciona una forma sencilla de configurar la autenticación basada en contraseña utilizando sus funciones integradas.

Para configurar la autenticación basada en contraseña, debes asegurarte de que tienes Laravel 9 instalado en tu sistema. Una vez que tengas un proyecto Laravel configurado, sigue estos pasos:

  • Empieza configurando tu conexión a la base de datos en el archivo .env situado en la raíz de tu proyecto Laravel.
  • Establece los valores adecuados para DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME y DB_PASSWORD según la configuración de tu base de datos.
  • Ejecuta el siguiente comando para generar el archivo de migración:
php artisan make:migration create_users_table --create=users
  • Puedes definir los campos necesarios para la tabla de usuarios, Una vez que hayas definido la estructura de la tabla, ejecuta la migración para crear la tabla de usuarios
php artisan migrate
  • El modelo Usuario de Laravel representa la tabla de usuarios. Asegúrate de que el modelo Usuario existe en el directorio app/Models o en el directorio app por defecto si utilizas una versión anterior de Laravel.
  • Si no existe, puedes generarlo utilizando el siguiente comando
php artisan make:model Models\\User
  • Abre el archivo config/auth.php y configura las guardias y los proveedores de autenticación. Asegúrate de que la guardia por defecto está configurada como web
'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],
  • Accede a la página de registro visitando /register en la URL de tu aplicación Laravel.
  • Visita la página de inicio de sesión en /login para iniciar sesión con las credenciales del usuario registrado. El sistema de autenticación de Laravel se encargará del proceso de verificación y creará una sesión para el usuario autenticado

Autenticación basada en token

La autenticación basada en tokens es un método popular para proteger las API y proporcionar autenticación sin estado. En lugar de depender de sesiones o cookies, se utilizan tokens para autenticar y autorizar las peticiones a la API.

Laravel 9 ofrece soporte integrado para la autenticación basada en tokens a través del paquete Laravel Sanctum.

Aquí tienes una guía paso a paso para implementar la autenticación basada en tokens en Laravel:

  • Empieza instalando el paquete Laravel Sanctum mediante Composer.
composer require laravel/sanctum
  • A continuación, ejecuta la migración para crear las tablas necesarias para Sanctum:
php artisan migrate
  • Para activar Sanctum, debes actualizar tu archivo app/Http/Kernel.php. Añade el middleware \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful ::class a la matriz $middlewareGroups:
'api' => [

    \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,

    'throttle:60,1',

    \Illuminate\Routing\Middleware\SubstituteBindings::class,

],
  • Generar tokens API
php artisan sanctum:tokens
  • Activa la autenticación por token para los usuarios
    usa Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable

{

    use HasApiTokens;

    // ...

}
  • Rutas de Autenticación y Middleware; Para generarlas, ejecuta el siguiente comando:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

Esto publicará el archivo de configuración de Sanctum, la migración y las rutas. Puedes encontrar las rutas en el archivo routes/api.php.

  • Para asegurar tus rutas API, puedes aplicarles el middleware Sanctum.
'auth:sanctum' => \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
  • Ahora puedes utilizar el middleware auth:sanctum para proteger tus rutas API.

Autenticación multifactor

La autenticación multifactor (AMF) añade una capa adicional de seguridad a la autenticación de usuarios, al exigirles que proporcionen varias formas de verificación.

Este enfoque mejora significativamente la seguridad de las cuentas de usuario combinando algo que el usuario conoce con algo que posee o algo que le es exclusivo, como una huella dactilar o el reconocimiento facial.

Laravel 9 proporciona soporte integrado para implementar la autenticación multifactor a través del paquete Laravel Fortify.

Aquí tienes una guía paso a paso para configurar la autenticación multifactor en Laravel:

  • Empieza instalando el paquete Laravel Fortify mediante Composer
composer require laravel/fortify
  • A continuación, ejecuta la migración para crear las tablas necesarias para Fortify:
php artisan migrate
  • Activa la autenticación multifactor:
'features' => [

    // ...

    'two-factor-authentication' => true,

],
  • Asegúrate de que el modelo implementa el contrato TwoFactorAuthenticatable e importa el rasgo LaravelFortify\TwoFactorAuthenticatable:
use Laravel\Fortify\TwoFactorAuthenticatable;

use Illuminate\Contracts\Auth\MustVerifyEmail;

use Illuminate\Foundation\Auth\User as Authenticatable;

use Illuminate\Notifications\Notifiable;

class User extends Authenticatable implements MustVerifyEmail

{
    use Notifiable, TwoFactorAuthenticatable;
    // ...

}
  • Activa la autenticación de dos factores para los usuarios:
'two-factor' => [
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
        ],
    ],
],
  • Genera vistas y rutas preconstruidas de Laravel para la autenticación multifactor utilizando el siguiente comando:
php artisan fortify:two-factor-auth

Este comando genera las vistas necesarias en el directorio resources/views/auth/two-factor y añade las rutas necesarias a tu archivo routes/web.php.

  • Personaliza el proceso de autenticación, modificando las vistas en resources/views/auth/two-factor y los controladores correspondientes.

Requisitos previos para la autenticación personalizada de Laravel 9.X

  1. Para empezar, consigue tu servidor en Cloudways si no tienes uno.
  2. Inicia una aplicación Laravel 9.x.

Paso 1: Configurar la base de datos

  • Ve a tu aplicación Laravel en el servidor Cloudways.
  • Haz clic en Iniciar base de datos.
  • Haz clic en Crear tabla. Nombra la nueva tabla usuarios y selecciona innoDB y ascii_general
  • Añade las siguientes columnas en la tabla:
  • id (int) (Comprueba el incremento automático A.I.)
  • nombre (texto)
  • nombre de usuario (texto)
  • correo electrónico (texto)
  • contraseña (texto)
  • recordar_token (texto)
  • timestamp (hora)
  • Haz clic en Guardar
  • Ahora haz clic en Nuevo elemento y añade el siguiente usuario:
  • Nombre: Usuario de Cloudways
  • Nombre de usuario: NewUser
  • Correo electrónico: [email protected]
  • Contraseña: Inicio123

Haz clic en Guardar

Cloud Hosting a medida para diferentes frameworks PHP

De Laravel a CodeIgniter, ¡te tenemos cubierto en todos los frameworks PHP!

Paso 2: Configurar las rutas

your-project-root-directory/routes/web.php

Aquí se encuentran todos los puntos finales.

Hagamos tres puntos finales:

  1. Publicar llamada para enviar el formulario
  2. Obtener llamada para mostrar el formulario de inicio de sesión
  3. Para cerrar sesión.
<?php
/*

|--------------------------------------------------------------------------

| Application Routes

|--------------------------------------------------------------------------

*/

// route to show the login form

Route::get('login', array(
	'uses' => 'MainController@showLogin'
));

// route to process the form

Route::post('login', array(
	'uses' => 'MainController@doLogin'
));
Route::get('logout', array(
	'uses' => 'MainController@doLogout'
));
Route::get('/',
function ()
	{
	return view('welcome');
	});

Paso 3: Hacer los controladores

Utiliza el siguiente comando para leer información del objeto Petición y crea y devuelve un objeto Respuesta.

utiliza App\Http\Controllers\UserController;

Route::get('/user/{id}', [UserController::class, 'show']);

Extenderé MainController desde el Controlador Base y haré tres funciones para mostrar el inicio de sesión, comprobar el inicio de sesión y para cerrar la sesión.

<?php
namespaceAppHttpControllers;
useRedirect;
useAuth;
useInput;
useIlluminateSupportFacadesValidator;
useIlluminateFoundationBusDispatchesJobs;
useIlluminateRoutingController as BaseController;
useIlluminateFoundationValidationValidatesRequests;
useIlluminateFoundationAuthAccessAuthorizesRequests;
useIlluminateFoundationAuthAccessAuthorizesResources;
useIlluminateHtmlHtmlServiceProvider;
class MainController extends BaseController

	{
	public

	function showLogin()
		{

		// Form View

		return view('login');
		}

	public

	function doLogout()
		{
		Auth::logout(); // logging out user
		return Redirect::to('login'); // redirection to login screen
		}

	public

	function doLogin()
		{

		// Creating Rules for Email and Password

		$rules = array(
			'email' => 'required|email', // make sure the email is an actual email
			'password' => 'required|alphaNum|min:8'

			// password has to be greater than 3 characters and can only be alphanumeric and);
			// checking all field

			$validator = Validator::make(Input::all() , $rules);

			// if the validator fails, redirect back to the form

			if ($validator->fails())
				{
				return Redirect::to('login')->withErrors($validator) // send back all errors to the login form
				->withInput(Input::except('password')); // send back the input (not the password) so that we can repopulate the form
				}
			  else
				{

				// create our user data for the authentication

				$userdata = array(
					'email' => Input::get('email') ,
					'password' => Input::get('password')
				);

				// attempt to do the login

				if (Auth::attempt($userdata))
					{

					// validation successful
					// do whatever you want on success

					}
				  else
					{

					// validation not successful, send back to form

					return Redirect::to('checklogin');
					}
				}
			}
		}

Paso 4: Configurar la vista

Ahora vamos a crear la vista, que contendrá el código HTML de la aplicación.

$ vim resources/views/checklogin.blade.php

La extensión .blade. php permite a Laravel saber que estoy utilizando su sistema de plantillas Blade.

Aquí tienes el código HTML de este archivo.

<!doctype html>
<html>
   <head>
      <title>My Login Page</title>
   </head>
   <body>
      <
      {{ Form::open(array('url' => 'login')) }}
      <h1>Login</h1>
      <!-- if there are login errors, show them here -->
      <p>
         {{ $errors->first('email') }}
         {{ $errors->first('password') }}
      </p>
      <p>
         {{ Form::label('email', 'Email Address') }}
         {{ Form::text('email', Input::old('email'), array('placeholder' => '[email protected]')) }}
      </p>
      <p>
         {{ Form::label('password', 'Password') }}
         {{ Form::password('password') }}
      </p>
      <p>{{ Form::submit('Submit!') }}</p>
      {{ Form::close() }}

Ahora, ¡comprobemos el aspecto de la aplicación!

Este es un ejemplo sencillo de cómo podrías implementar la autenticación de inicio de sesión en una aplicación Laravel.

Otra configuración de inicio de sesión y registro en Laravel

Aquí tienes un GIF que explica todo el proceso:

Instalación de Cloudways

Migración de bases de datos

En una aplicación con Laravel, la configuración de la base de datos se gestiona mediante dos archivos: env y config/database.php. En mi caso, he creado una base de datos con el nombre loginuser. El Gestor de Bases de Datos de Cloudways facilita mucho todo el proceso.

A continuación, ejecuta el siguiente comando en el terminal para crear tablas en la base de datos:

Accede al terminal SSH utilizando las Credenciales Maestras y ve a la carpeta de la aplicación utilizando el comando

$ ls
applications
$ cd applications
applications$ ls
pjbeasusxr trxbnbphae
applications$ cd trxbnbphae/
trxbnbphae$ cd public_html/
php artisan migrate

Ahora, cuando compruebes la base de datos, verás que las tablas se han creado correctamente.

Configurar la autenticación de Laravel

php artisan make:auth

También se puede utilizar como ruta para todos los puntos finales de autenticación.

Regístrate en

Iniciar sesión

Utilizar el nombre de usuario para la autenticación

Laravel utiliza la dirección de correo electrónico por defecto como campo de autenticación. Sin embargo, los usuarios prefieren utilizar su nombre de usuario en lugar del correo electrónico. Para cambiar el comportamiento por defecto, he aquí cómo definir un nombre de usuario en el controlador.

Controlador de inicio de sesión

public function username()
{ return 'username';}

¡Potencia tus proyectos Laravel con el hosting gestionado Laravel de Cloudways!

Libera el poder de Laravel con el alojamiento gestionado: ¡donde la innovación se une a la excelencia sin esfuerzo!

Conclusión

Configurar la autenticación de inicio de sesión en Laravel no tiene por qué ser una tarea desalentadora. Con el enfoque adecuado y utilizando las potentes funciones puedes implementar un sistema de autenticación fuerte y seguro para tu aplicación web.

Recuerda tener en cuenta las necesidades específicas de tu proyecto y los requisitos de seguridad a la hora de elegir el método de autenticación. Y si tienes alguna pregunta, déjala en los comentarios y te responderé lo antes posible.

P) ¿Qué es la autenticación en Laravel?

La autenticación es el proceso de identificación de las credenciales del cliente. En las aplicaciones web, la autenticación se supervisa mediante sesiones que toman los parámetros de entrada, como el correo o el nombre de usuario y la contraseña, para la prueba de reconocimiento del cliente.

P) ¿Cómo obtener un usuario autenticado en Laravel?

Utiliza la fachada Auth:

$user = Auth::user();
$id = Auth::id();

Para la autenticación de la API, utiliza auth(‘sanctum’) ->user(); o auth(‘api’)->user();.

P) ¿Cuál es el mejor método de autenticación en Laravel?

Para aplicaciones web, utiliza Breeze (sencilla) o Jetstream (avanzada). Para las API, Sanctum es lo mejor para las SPA, mientras que Passport admite la autenticación OAuth2.

P) ¿Cuáles son las credenciales por defecto de Laravel?

Laravel no tiene credenciales por defecto, pero los paneles de administración como Laravel-Admin utilizan admin/admin en http://localhost/admin/. Cambia siempre los valores por defecto por seguridad.

P) ¿Cómo instalar el paquete auth en Laravel?

Corre:

composer require laravel/ui
php artisan ui vue --auth
php artisan migrate

Visita /login y /register para acceder a la autenticación.

P) ¿Cómo puedo activar la autenticación en Laravel?

Necesitas Instalar el paquete laravel/ui Composer y ejecutar php artisan ui vue –auth en una nueva aplicación Laravel. Después de migrar tu base de datos, abre http://your-app.test/register o cualquier otra URL asignada a tu aplicación en tu navegador.

P) ¿Cuáles son los diferentes métodos de autenticación disponibles en Laravel?

Laravel proporciona varios métodos de autenticación, como la autenticación basada en sesión, la autenticación basada en token (autenticación API) y la autenticación socialite (integración con plataformas de medios sociales populares para la autenticación).

P) ¿Puedo personalizar el proceso de inicio de sesión y registro en Laravel?

Sí, puedes personalizar el proceso de inicio de sesión y registro en Laravel modificando las vistas, rutas y controladores generados o creando tu propia lógica y vistas personalizadas para satisfacer tus requisitos específicos.

P) ¿Existen paquetes o bibliotecas que puedan ayudar a agilizar la autenticación de inicio de sesión en Laravel?

Sí, paquetes populares como Laravel Sanctum, Laravel Passport, Laravel Socialite y Laravel Jetstream pueden agilizar la autenticación de inicio de sesión en Laravel para diversas necesidades.

P) ¿Puedo implementar la funcionalidad de inicio de sesión social (por ejemplo, inicio de sesión con Google o Facebook) en Laravel?

Sí, puedes implementar fácilmente la funcionalidad de inicio de sesión social (por ejemplo, Google o Facebook) en Laravel utilizando el paquete Laravel Socialite. Proporciona una forma sencilla de autenticarse con proveedores OAuth y es compatible con plataformas populares como Google, Facebook, Twitter, GitHub, etc.

P) ¿Cómo autenticar el inicio de sesión en Laravel?

  • Instala Laravel Breeze o Jetstream para disponer de un andamiaje de autenticación preconstruido.
  • Ejecuta php artisan migrate para configurar las tablas de usuarios por defecto.
  • Utiliza el método Auth::attempt() para validar las credenciales.

P) ¿Cómo establecer la autorización en Laravel?

Genera políticas utilizando php artisan make:policy PolicyName. Define la lógica de autorización dentro de estas políticas. Aplícalas en controladores o rutas utilizando Gate::allows() o el método authorize().

P) ¿Cómo crear una autenticación de administrador en Laravel?

Añade una columna is_admin a tu tabla de usuarios. Actualiza el middleware para comprobar este estado. Separa las rutas de administrador y de usuario utilizando grupos de rutas.

P) ¿Cómo crear una autenticación personalizada en Laravel?

Construye formularios de inicio de sesión personalizados y gestiona las solicitudes en los controladores. Define guardias personalizadas en auth.php y utiliza Auth::guard() para implementar tu lógica de autenticación.

P) ¿Cómo iniciar sesión con Laravel?

Utiliza el sistema de autenticación integrado de Laravel. Envía las credenciales a la ruta de inicio de sesión; Laravel autenticará al usuario utilizando Auth::attempt().

P) ¿Cómo escribir en el archivo de registro de Laravel?

Utiliza el ayudante de registro de Laravel: Log::info(‘Tu mensaje de registro’). Esto escribe mensajes personalizados en el archivo storage/logs/laravel.log.

P) ¿Cómo inicio sesión en Laravel admin?

Accede a la página de inicio de sesión del administrador, normalmente en /admin/login. Autentícate con las credenciales de administrador para ser redirigido al panel de administración.

P) ¿Qué es el controlador Laravel para el inicio de sesión?

En la configuración de autenticación por defecto de Laravel, el LoginController en App\Http\Controllers\Auth gestiona la funcionalidad de inicio de sesión.

Share your opinion in the comment section. COMMENT NOW

Share This Article

Shahzeb Ahmed

Un creativo de día (con una taza de té) y un creativo de noche. Ahmad Kamran es redactor de contenidos estacionales y Ejecutivo de Marketing Senior en Cloudways. Puedes encontrarle en su escritorio escribiendo, elaborando estrategias o jugando. Y en caso de que no puedas encontrarle aquí, estará en la montaña o junto a la orilla del río.

×

Webinar: How to Get 100% Scores on Core Web Vitals

Join Joe Williams & Aleksandar Savkovic on 29th of March, 2021.

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

¿Quieres experimentar la plataforma Cloudways en todo su esplendor?

Realice una visita guiada GRATUITA de Cloudways y compruebe usted mismo lo fácil que es administrar su servidor y sus aplicaciones en la plataforma de alojamiento en la nube líder.

Iniciar mi recorrido