Laravel - Autenticazione

L'autenticazione è il processo di identificazione delle credenziali dell'utente. Nelle applicazioni web, l'autenticazione è gestita da sessioni che prendono i parametri di input come email o username e password, per l'identificazione dell'utente. Se questi parametri corrispondono, si dice che l'utente è autenticato.

Comando

Laravel utilizza il seguente comando per creare moduli e i controller associati per eseguire l'autenticazione:

php artisan make:auth

Questo comando aiuta a creare correttamente lo scaffolding di autenticazione, come mostrato nello screenshot seguente:

Controller

Il controller utilizzato per il processo di autenticazione è HomeController.

<?php

namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Http\Request;

class HomeController extends Controller{
   /**
      * Create a new controller instance.
      *
      * @return void
   */
   
   public function __construct() {
      $this->middleware('auth');
   }
   
   /**
      * Show the application dashboard.
      *
      * @return \Illuminate\Http\Response
   */
   
   public function index() {
      return view('home');
   }
}

Di conseguenza, l'applicazione scaffold generata crea la pagina di accesso e la pagina di registrazione per eseguire l'autenticazione. Sono come mostrato di seguito -

Accesso

Registrazione

Autenticazione manuale degli utenti

Laravel utilizza l'estensione Authfacciata che aiuta ad autenticare manualmente gli utenti. Include il fileattempt metodo per verificare la propria email e password.

Considera le seguenti righe di codice per LoginController che include tutte le funzioni per l'autenticazione -

<?php

// Authentication mechanism
namespace App\Http\Controllers;

use Illuminate\Support\Facades\Auth;

class LoginController extends Controller{
   /**
      * Handling authentication request
      *
      * @return Response
   */
   
   public function authenticate() {
      if (Auth::attempt(['email' => $email, 'password' => $password])) {
      
         // Authentication passed...
         return redirect()->intended('dashboard');
      }
   }
}