Skip to main content

Qu’est-ce que Fortify

Laravel Fortify est une implémentation de backend d’authentification indépendante du frontend. Il fournit toutes les routes et contrôleurs nécessaires pour la connexion, l’inscription, la réinitialisation du mot de passe, la vérification e-mail, le 2FA et les passkeys.
Fortify n’a pas d’interface utilisateur. Il fonctionne lorsque le starter kit ou votre propre interface envoie des requêtes aux routes de Fortify.
La philosophie de conception « indépendante du frontend » est centrale. Que vous utilisiez Blade, Inertia (React/Vue/Svelte) ou une API, vous réutilisez le même backend d’authentification. C’est la raison pour laquelle Fortify continue d’être utilisé aussi longtemps.

Historique : de Jetstream aux starter kits actuels

Pourquoi Fortify est utilisé dans les starter kits actuels

Les starter kits React/Vue initiaux étaient implémentés sans Fortify. Mais lorsque la prise en charge de l’authentification à deux facteurs (2FA) est devenue nécessaire, Fortify a été adopté tel quel, ce qui a fait basculer toute l’authentification sur une base Fortify. Comme Fortify est conçu pour être « indépendant du frontend », il s’accorde bien avec les starter kits basés sur Inertia, et il est toujours utilisé aujourd’hui.
Fortify est actuellement le package d’authentification officiel Laravel utilisé sur la plus longue durée. Depuis son apparition en 2020, il reste en service au fil de ses avatars : Jetstream → starter kits actuels.

Structure des starter kits actuels

Dans les starter kits React/Vue, Fortify est configuré via ces fichiers.
  • app/Providers/FortifyServiceProvider.php — enregistrement des vues, actions et rate limits
  • config/fortify.php — fonctionnalités activées et paramètres d’authentification

Principaux paramètres de config/fortify.php

Dans les starter kits, les passkeys (Features::passkeys()) ne sont pas activées par défaut. Pour les activer, ajoutez-les au tableau features.

Configuration de FortifyServiceProvider

Le FortifyServiceProvider du starter kit remplit trois rôles.

1. Configuration des actions

Personnalisez la logique de création d’utilisateur et de réinitialisation du mot de passe via les classes placées dans app/Actions/Fortify/. La validation et le hachage sont regroupés ici.

2. Configuration des vues

Chaque méthode de vue reçoit une closure qui retourne un composant Inertia. Le point clé est l’utilisation de Features::enabled() pour vérifier les feature flags et les passer à la vue.
Dans une application Blade, retournez view('auth.login') au lieu de Inertia::render(...). Même en changeant de frontend, seul FortifyServiceProvider doit être modifié ; la logique d’authentification ne change pas.

3. Configuration du rate limiting

  • Limiteur login : limite par combinaison e-mail + adresse IP (protection contre le brute-force)
  • Limiteur two-factor : limite par ID de tentative de connexion en session
Enregistrez sur RateLimiter::for() des clés qui correspondent à celles de la clé limiters de config/fortify.php.

Principales fonctionnalités et routes enregistrées

Voici les principales routes enregistrées par Fortify, classées par fonctionnalité. Vérifiez les routes réellement enregistrées avec php artisan route:list --name=fortify ou simplement php artisan route:list.

Authentification à deux facteurs (2FA)

Dans les starter kits, Features::twoFactorAuthentication() est activée. confirm et confirmPassword sont tous deux à true. Depuis l’écran de paramétrage 2FA, l’utilisateur peut effectuer les opérations suivantes.
1

Activer le 2FA

Envoyez une requête POST à /user/two-factor-authentication. En cas de succès, le statut two-factor-authentication-enabled est mis en session.
2

Consulter le QR code

Envoyez une requête GET à /user/two-factor-qr-code. Le SVG du QR code à scanner par l’application d’authentification est retourné.
3

Confirmer avec un code d'authentification

Envoyez une requête POST avec le code à /user/confirmed-two-factor-authentication pour finaliser la configuration.
4

Sauvegarder les codes de récupération

Envoyez une requête GET à /user/two-factor-recovery-codes, récupérez les codes de récupération et stockez-les en lieu sûr.

Passkeys

Les passkeys sont une fonctionnalité récemment ajoutée à Fortify. C’est une authentification sans mot de passe utilisant WebAuthn, compatible avec Face ID, Touch ID, Windows Hello et les clés de sécurité matérielles.

Activation

Ajoutez au tableau features de config/fortify.php.
Ensuite, ajoutez le contrat PasskeyUser et le trait PasskeyAuthenticatable au modèle User.
Les paramètres WebAuthn sont gérés dans la clé passkeys de config/fortify.php.
Les passkeys de Fortify s’appuient en interne sur le package Composer laravel/passkeys. Il n’est pas nécessaire de publier le fichier de configuration de laravel/passkeys ; la clé passkeys de config/fortify.php est prioritaire.
Pour les détails d’implémentation des passkeys (client JS @laravel/passkeys, helpers React/Vue/Svelte, etc.), consultez aussi Introduction aux passkeys.

Pages associées

Guard d'authentification personnalisé

Découvrez comment créer un guard d’authentification personnalisé en implémentant les interfaces Guard et StatefulGuard.

Documentation officielle : Laravel Fortify

Consultez la documentation officielle pour l’installation, l’ensemble des fonctionnalités et la personnalisation.
Dernière modification le 13 juillet 2026