Laravel 7 | Autenticar manualmente a los usuarios

autenticacion con laravel 7

Es imporntante tener en cuenta que no estamos obligado a utilizar los controladores de autenticación incluidos en Laravel. Si decides eliminar estos controladores, tendrás que gestionar la autenticación de usuario utilizando directamente las clases de autenticación de Laravel. No te preocupes…no es complicado.

Accederemos a los servicios de autenticación de Laravel a través de Auth Facade, así que tendremos que asegurarnos de importar Auth Facade en la parte superior de la clase. A continuación, vamos a comprobar el método de attempt method:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
    /**
     * Handle an authentication attempt.
     *
     * @param  \Illuminate\Http\Request $request
     *
     * @return Response
     */
    public function authenticate(Request $request)
    {
        $credentials = $request->only('email', 'password');

        if (Auth::attempt($credentials)) {
            // Authentication passed...
            return redirect()->intended('dashboard');
        }
    }
}

El método attempt acepta una serie de pares clave/valor como primer argumento. Los valores de la matriz se utilizarán para encontrar al usuario en su tabla de base de datos. Así, en el ejemplo anterior, el usuario será recuperado por el valor de la columna de correo electrónico. Si se encuentra al usuario, la contraseña hash almacenada en la base de datos se comparará con el valor de la contraseña pasada al método a través de la matriz. No se debe hacer un hash de la contraseña especificada como valor de la contraseña, ya que el array hará automáticamente un hash del valor antes de compararlo con la contraseña hash de la base de datos. Si las dos contraseñas hash coinciden, se iniciará una sesión autenticada para el usuario.

El método attempt devolverá verdadero si la autenticación fue exitosa. En caso contrario, se devolverá false.

El método intended redirigirá al usuario a la URL a la que intentaba acceder antes de ser interceptado por el middleware de autenticación. Se puede dar una URI de reserva a este método en caso de que el destino previsto no esté disponible.

Especificación de condiciones adicionales

También se pueden añadir condiciones adicionales a la consulta de autenticación, además del correo electrónico y la contraseña del usuario. Por ejemplo, podemos verificar que el usuario esté marcado como «activo»:

if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) {
    // The user is active, not suspended, and exists.
}

Acceder a instancias específicas de Guardi

Puedes especificar qué instancia de guard deseas utilizar en el método de guard en el Auth facade. Esto le permite gestionar la autenticación de partes separadas de la aplicación utilizando modelos o tablas de usuarios autenticables totalmente separados.

El nombre de guardia pasado al método de guardia debe corresponder a una de las guard configurados en el archivo de configuración auth.php:

if (Auth::guard('admin')->attempt($credentials)) {
    //
}

Logging Out

Para desconectar a los usuarios de tu aplicación, puedes utilizar el método de desconexión en el Auth facade. Esto borrará la información de autenticación en la sesión del usuario:

Auth::logout();

 

Fuente: https://laravel.com/docs/7.x/authentication

Comentarios