Maîtriser l'authentification des utilisateurs dans Laravel

Maîtriser l'authentification des utilisateurs dans Laravel



Laravel il y a 5 mois

Tutoriel sur les bases de l'authentification Laravel

Ce tutoriel vous guide à travers les bases de l'authentification dans Laravel, en abordant les kits de démarrage, l'accès au modèle d'authentification par défaut, les vérifications dans les contrôleurs et les modèles Blade, et l'utilisation du middleware d'authentification.

Prérequis:

1. Kit de démarrage : Laravel UI (Bootstrap)

Pour un démarrage rapide et pratique avec le style Bootstrap, Laravel propose le package laravel/ui. Installez-le en utilisant Composer :

Bash

composer require laravel/ui

Ensuite, publiez les ressources et la configuration nécessaires :

Bash

php artisan ui vue --auth  # Pour le frontend Vue.js (optionnel)
php artisan ui bootstrap  # Pour le frontend Bootstrap

Cette commande génère des contrôleurs, des vues et des migrations pour les fonctionnalités d'authentification des utilisateurs.

2. Modèle d'authentification par défaut et accès aux champs

Laravel fournit un modèle d'utilisateur par défaut (App\Models\User). Vous pouvez accéder à ses champs comme n'importe quel modèle Eloquent :

PHP

$utilisateur = Auth::user();

$nom = $utilisateur->nom;
$email = $utilisateur->email;

3. Vérification de l'authentification dans les contrôleurs et les modèles Blade

Contrôleurs:

PHP

use Illuminate\Support\Facades\Auth;

public function uneMethode()
{
    if (Auth::check()) {
        // L'utilisateur est authentifié
        $utilisateur = Auth::user();
        // ...
    } else {
        // L'utilisateur n'est pas authentifié
        return redirect('/connexion');
    }
}

Modèles Blade:

HTML

@if (Auth::check())
    <p>Bienvenue, {{ Auth::user()->nom }} !</p>
    <a href="{{ route('deconnexion') }}">Déconnexion</a>
@else
    <a href="{{ route('connexion') }}">Connexion</a>
    <a href="{{ route('inscription') }}">Inscription</a>
@endif

4. Middleware d'authentification

Le middleware vous permet de contrôler l'accès aux routes en fonction de l'état d'authentification. Créez un middleware :

Bash

php artisan make:middleware AuthMiddleware

Dans le middleware (app/Http/Middleware/AuthMiddleware.php):

PHP

public function handle($request, Closure $next)
{
    if (!Auth::check()) {
        return redirect('/connexion');
    }

    return $next($request);
}

Enregistrez le middleware dans app/Http/Kernel.php :

PHP

protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\AuthMiddleware::class,
];

Appliquer le middleware aux routes:

PHP

Route::get('/profil', function () {
    // Cette route nécessite une authentification
})->middleware('auth');

Remarques supplémentaires:

  • N'oubliez pas de configurer vos paramètres d'email dans .env pour des fonctionnalités telles que la réinitialisation du mot de passe.
  • Laravel propose d'autres fonctionnalités d'authentification comme l'authentification à deux facteurs et l'intégration de la connexion sociale, que vous pouvez explorer dans la documentation (https://laravel.com/docs/11.x/authentication).
  • Pensez à utiliser un kit de démarrage plus robuste comme Laravel Jetstream pour un ensemble plus large de fonctionnalités et des composants d'interface utilisateur modernes (https://jetstream.laravel.com/).

En suivant ces étapes, vous disposerez d'une base solide pour l'authentification des utilisateurs dans votre application Laravel, en utilisant des kits de démarrage pour plus de commodité, en accédant efficacement aux données des utilisateurs et en implémentant des vérifications d'authentification dans les contrôleurs et les modèles Blade pour contrôler l'accès et personnaliser l'expérience utilisateur.