Authentification Laravel : controleurs Auth, RegistersUsers et AuthenticatesUsers

Implementez l'authentification Laravel complete : RegisterController, LoginController, traits RegistersUsers et AuthenticatesUsers expliques.

Mahmoud DEVO
Mahmoud DEVO
December 28, 2025 3 min read
Authentification Laravel : controleurs Auth, RegistersUsers et AuthenticatesUsers

Authentifier les Utilisateurs avec Laravel

Introduction

L’authentification des utilisateurs est un aspect crucial de la sécurité d’une application web. Dans cette partie, nous allons explorer comment utiliser le framework Laravel pour authentifier les utilisateurs et gérer leur connexion. Nous allons voir comment créer un système d’authentification complet avec Laravel, y compris l’enregistrement, la connexion et la gestion des mot de passe.

Les Contrôleurs Auth

Les contrôleurs Auth sont responsables de l’authentification des utilisateurs. Il existe plusieurs contrôleurs Auth dans Laravel, notamment :

  • RegisterController : permet aux utilisateurs de s’enregistrer
  • LoginController : permet aux utilisateurs de se connecter
  • ResetPasswordController : permet aux utilisateurs de réinitialiser leur mot de passe
  • ForgotPasswordController : permet aux utilisateurs de demander un lien pour réinitialiser leur mot de passe

Contrôleur Register

Le contrôleur RegisterController est responsable de l’enregistrement des nouveaux utilisateurs. Il utilise la traite RegistersUsers qui gère les étapes suivantes :

  • Afficher la vue d’inscription
  • Valider les données entrées par l’utilisateur
  • Créer un nouveau utilisateur avec les informations fournies

Exemple :

// app/Http/Controllers/RegisterController.php

use Illuminate\Http\Request;
use App\RegisterUsers;

class RegisterController extends Controller
{
    use RegistersUsers;

    protected $redirectTo = '/home';

    public function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users',
            'password' => 'required|string|min:6|confirmed',
        ]);
    }

    public function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);
    }
}

Contrôleur Login

Le contrôleur LoginController est responsable de la connexion des utilisateurs. Il utilise la traite AuthenticatesUsers qui gère les étapes suivantes :

  • Afficher la vue de connexion
  • Valider les données entrées par l’utilisateur
  • Vérifier si l’utilisateur a accès à la page demandée

Exemple :

// app/Http/Controllers/LoginController.php

use Illuminate\Http\Request;
use App\AuthenticatesUsers;

class LoginController extends Controller
{
    use AuthenticatesUsers;

    protected $redirectTo = '/home';

    public function showLoginForm()
    {
        return view('auth.login');
    }

    public function login(Request $request)
    {
        // Valider les données entrées par l'utilisateur
        $validatedData = Validator::make($request->all(), [
            'email' => 'required|string|email|max:255',
            'password' => 'required|string|min:6',
        ]);

        if ($validatedData->fails()) {
            return redirect()->back()->withErrors($validatedData)->withInput();
        }

        // Vérifier si l'utilisateur a accès à la page demandée
        $user = User::where('email', $request->input('email'))->first();

        if (!$user) {
            return redirect()->back()->withErrors(['Email ou mot de passe incorrect.']);
        }

        Auth::login($user);

        return redirect()->intended($this->redirectTo);
    }
}

Traite RegistersUsers

La traite RegistersUsers est responsable de gérer les étapes d’enregistrement des utilisateurs. Elle fournit les méthodes suivantes :

  • showRegistrationForm() : affiche la vue d’inscription
  • register() : enregistre un nouveau utilisateur avec les informations fournies
  • redirectPath() : définit l’emplacement où l’utilisateur sera redirigé après inscription

Exemple :

// app/Traits/RegistersUsers.php

use Illuminate\Http\Request;
use App\User;

trait RegistersUsers
{
    public function showRegistrationForm()
    {
        return view('auth.register');
    }

    public function register(Request $request)
    {
        // Enregistrer un nouveau utilisateur avec les informations fournies
        User::create([
            'name' => $request->input('name'),
            'email' => $request->input('email'),
            'password' => Hash::make($request->input('password')),
        ]);

        return redirect()->intended($this->redirectPath());
    }

    public function redirectPath()
    {
        if (auth()->check()) {
            return '/home';
        } else {
            return '/register';
        }
    }
}

Traite AuthenticatesUsers

La traite AuthenticatesUsers est responsable de gérer les étapes de connexion des utilisateurs. Elle fournit les méthodes suivantes :

  • showLoginForm() : affiche la vue de connexion
  • login() : vérifie si l’utilisateur a accès à la page demandée et le connecte si nécessaire
  • throttleLogins() : limite le nombre d’essais de connexion pour un utilisateur

Exemple :

// app/Traits/AuthenticatesUsers.php

use Illuminate\Http\Request;
use App\User;

trait AuthenticatesUsers
{
    public function showLoginForm()
    {
        return view('auth.login');
    }

    public function login(Request $request)
    {
        // Vérifier si l'utilisateur a accès à la page demandée
        $user = User::where('email', $request->input('email'))->first();

        if (!$user) {
            return redirect()->back()->withErrors(['Email ou mot de passe incorrect.']);
        }

        Auth::login($user);

        return redirect()->intended($this->redirectTo);
    }

    public function throttleLogins(Request $request)
    {
        // Limite le nombre d'essais de connexion pour un utilisateur
        if ($request->input('email') == 'user@example.com') {
            return redirect()->back()->withErrors(['Trop d\'essais de connexion.']);
        }
    }
}

Conclusion

Dans cette partie, nous avons vu comment utiliser les contrôleurs Auth de Laravel pour authentifier les utilisateurs et gérer leur connexion. Nous avons également vu comment créer un système d’authentification complet avec Laravel en utilisant les traite RegistersUsers et AuthenticatesUsers. Il est important de noter que cette partie est une introduction à l’authentification des utilisateurs avec Laravel, et qu’il existe de nombreuses autres fonctionnalités et paramètres à prendre en compte pour créer un système d’authentification robuste.

Prochaines étapes

  • Créer un système d’autorisation pour les utilisateurs
  • Configurer l’authentification des utilisateurs avec un fournisseur d’identité externe
  • Utiliser les fonctionnalités de sécurité de Laravel, telles que la ratelimitation et la validation des données.
Advertisement

In-Article Ad

Dev Mode

Share this article

Mahmoud DEVO

Mahmoud DEVO

Senior Full-Stack Developer

I'm a passionate full-stack developer with 10+ years of experience building scalable web applications. I write about Vue.js, Node.js, PostgreSQL, and modern DevOps practices.

Enjoyed this article?

Subscribe to get more tech content delivered to your inbox.

Related Articles