Qu’est-ce que l’authentification
L’authentification (Authentication) est le mécanisme qui vérifie « qui » est l’utilisateur qui accède à l’application. Sur une application web, un formulaire de connexion reçoit un e-mail et un mot de passe : si les identifiants sont valides, les informations utilisateur sont stockées en session. Pour les requêtes suivantes, cette session sert à identifier l’utilisateur. L’authentification Laravel repose sur deux concepts : les « gardes » (guards) et les « providers ».- Garde : définit comment authentifier l’utilisateur à chaque requête. Par défaut, la garde
sessionutilise la session et les cookies pour gérer l’état. - Provider : définit comment récupérer les utilisateurs depuis la base. Par défaut, Eloquent est utilisé.
Le fichier de configuration d’authentification est
config/auth.php. Ses valeurs par défaut couvrent la plupart des applications web.Authentification via un kit de démarrage
Avec Laravel, il suffit de choisir un kit de démarrage lors de la création vialaravel new pour que la connexion, l’inscription et la réinitialisation du mot de passe soient configurées automatiquement. C’est la méthode recommandée.
Créer l'application
Créez l’application avec l’installateur Laravel. Une invite propose de choisir un kit de démarrage.Vous pouvez choisir entre React, Vue, Livewire et Svelte.
Sélectionnez celui qui correspond à la pile technique de votre équipe.
Préparer la base de données
Vérifiez la configuration de base de données dans La migration initiale, qui inclut la table
.env, puis exécutez les migrations.users, est appliquée.| Fonctionnalité | URL |
|---|---|
| Inscription | /register |
| Connexion | /login |
| Réinitialisation du mot de passe | /forgot-password |
| Vérification de l’e-mail | /email/verify |
| Édition du profil | /settings/profile |
Kits de démarrage disponibles
React
Application SPA moderne construite avec React 19, TypeScript, Tailwind et shadcn/ui. Grâce à Inertia, vous conservez le routage côté serveur tout en utilisant un frontend React.Vue
Utilise la Composition API de Vue, TypeScript, Tailwind et shadcn-vue. Comme pour React, Inertia sert de pont avec le backend.Livewire
Utilise Livewire pour construire des UI dynamiques uniquement en PHP. Idéal pour les équipes centrées sur Blade ou celles qui veulent éviter les frameworks JavaScript. La bibliothèque de composants Flux UI est incluse.Svelte
Utilise Svelte 5, TypeScript, Tailwind et shadcn-svelte. Combiné à Inertia pour construire une SPA moderne.Façade d’authentification
La façadeAuth permet d’obtenir l’utilisateur courant et de vérifier l’état d’authentification.
Récupérer l’utilisateur authentifié
Request.
Vérifier l’état d’authentification
Auth::check() retourne true si l’utilisateur est connecté, false sinon.
@auth et @guest sont pratiques.
Protéger des routes
Pour restreindre une route aux utilisateurs connectés, utilisez le middlewareauth.
/login.
Pour protéger plusieurs routes, utilisez un groupe.
Routes réservées aux invités
Pour rediriger les utilisateurs déjà connectés, utilisez le middlewareguest.
Appliqué aux pages de connexion et d’inscription, il redirige les utilisateurs connectés vers le tableau de bord.
Authentification manuelle
Pour implémenter la connexion manuellement (sans kit de démarrage), utilisezAuth::attempt().
true comme second argument.
Même en implémentation manuelle, inspirez-vous du code du kit de démarrage : c’est un excellent exemple de mise en œuvre sécurisée.
Déconnexion
AppelezAuth::logout() pour déconnecter l’utilisateur.
Il est recommandé d’invalider la session et de régénérer le token CSRF en même temps.
Récapitulatif
| Objectif | Méthode |
|---|---|
| Ajouter rapidement l’authentification | Kit de démarrage (laravel new) |
| Récupérer l’utilisateur courant | Auth::user() / $request->user() |
| Vérifier l’état de connexion | Auth::check() |
| Protéger une route | ->middleware('auth') |
| Se connecter manuellement | Auth::attempt($credentials) |
| Se déconnecter | Auth::logout() |
Prochaines étapes
Middleware
Découvrez plus en détail le middleware
auth et la création de vos propres middlewares.