Volver a la página principal
sábado 28 septiembre 2024
16

Cómo usar auth() en Laravel para gestionar la autenticación de usuarios

Definición de auth() en Laravel

El método auth() devuelve una instancia del guard actual, lo que permite interactuar con la autenticación de la aplicación. Se puede usar para autenticar usuarios, verificar roles, obtener detalles del usuario autenticado y mucho más. Por defecto, Laravel utiliza la autenticación basada en sesiones, pero también es compatible con otros métodos como API Tokens y JWT.

Ejemplo básico de uso:

$user = auth()->user();

Este ejemplo obtiene la información del usuario actualmente autenticado.

Algunos ejemplos de uso de auth()

1. Obtener el usuario autenticado:

$user = auth()->user();
   echo $user->name;

Este código obtiene la instancia del usuario autenticado y accede a sus propiedades, como el nombre (name).

2. Verificar si hay un usuario autenticado:

if (auth()->check()) {
       echo "El usuario está autenticado.";
   } else {
       echo "El usuario no ha iniciado sesión.";
   }

auth()->check() devuelve true si el usuario está autenticado, y false si no lo está.

3. Obtener el ID del usuario autenticado:

$userId = auth()->id();

Esto devuelve el ID del usuario actualmente autenticado o null si no hay un usuario en sesión.

4. Autenticar manualmente a un usuario (login):

$credentials = ['email' => 'example@example.com', 'password' => 'password123'];
   
   if (auth()->attempt($credentials)) {
       // Inicio de sesión exitoso
       return redirect()->route('dashboard');
   } else {
       // Fallo de autenticación
       return back()->withErrors(['message' => 'Credenciales incorrectas.']);
   }

auth()->attempt() intenta autenticar al usuario con las credenciales proporcionadas y, si es exitoso, inicia sesión.

5. Cerrar sesión del usuario (logout):

auth()->logout();
   return redirect('/login');

Este código cierra la sesión del usuario y redirige a la página de inicio de sesión (/login).

6. Acceder a un guard específico:

$admin = auth('admin')->user();

Si tu aplicación tiene múltiples guardias (por ejemplo, admin, web, api), puedes especificar el guard que quieres utilizar pasando su nombre como parámetro a auth().

Referencia oficial

Para más información sobre el uso de auth() y la autenticación en Laravel, consulta la documentación oficial de Laravel.

Etiquetas:
php laravel
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer