Passer au contenu principal

Pourquoi migrer depuis laravel/ui ?

laravel/ui fonctionne aussi sur Laravel 13 : sa dernière release inclut la compatibilité Laravel 13. Cependant, les starter kits officiels actuels s’appuient sur Fortify. En restant sur laravel/ui, on s’écarte peu à peu de la trajectoire officielle. Si vous voulez conserver votre stack Bootstrap + Blade tout en améliorant la maintenabilité future, migrer le backend d’authentification vers Fortify est pertinent.

Vue d’ensemble de la migration

Cette migration remplace uniquement le backend d’authentification. Aucun grand renouvellement d’UI n’est nécessaire.
  • Fortify fournit les routes et le traitement d’authentification
  • Les templates Bootstrap + Blade existants sont réutilisés
  • Vous ajustez l’action des formulaires et les noms d’entrées au besoin
Fortify est un backend d’authentification headless. Il ne fournit pas d’UI, ce qui vous permet de conserver votre Blade existant.

Étapes d’installation de Fortify

1

Ajouter le package Fortify

composer require laravel/fortify
2

Publier les ressources Fortify

php artisan fortify:install
3

Exécuter les migrations

php artisan migrate
4

Supprimer les routes Auth ajoutées par `laravel/ui`

Retirez Auth::routes(); (ou Auth::routes([...])) de routes/web.php. Fortify fournit /login, /register, /forgot-password, etc. : il faut éviter les doublons.

Configurer FortifyServiceProvider

Dans le app/Providers/FortifyServiceProvider.php publié par php artisan fortify:install, associez les vues. Pour continuer à utiliser vos resources/views/auth, voici la configuration clé.
use Laravel\Fortify\Fortify;

public function boot(): void
{
    Fortify::viewPrefix('auth.');
    Fortify::requestPasswordResetLinkView('auth.passwords.email');
    Fortify::resetPasswordView('auth.passwords.reset');
    Fortify::confirmPasswordView('auth.passwords.confirm');
    Fortify::verifyEmailView('auth.verify');
}

Retouches minimales des templates Blade

Après la migration, vérifiez les points suivants dans vos Blade existants.
  • L’action des formulaires pointe vers les endpoints Fortify (par exemple /login, /register, /forgot-password). Comme la plupart utilisent des noms de routes (route('login'), route('register')), il y a peu à changer. Seul route('verification.resend') doit être remplacé par route('verification.send').
Deux corrections sont à apporter dans auth/passwords/reset.balde.php :
<input type="hidden" name="token" value="{{ $token }}">
<input type="hidden" name="token" value="{{ $request->route('token') }}">
{{ $email ?? old('email') }}
{{ old('email', $request->email) }}

Désactiver les fonctionnalités inutiles

Les fonctionnalités absentes dans laravel/ui doivent être désactivées dans config/fortify.php. Il suffit de préparer les vues correspondantes pour les activer.
    'features' => [
        Features::registration(),
        Features::resetPasswords(),
        // Features::emailVerification(),
        // Features::updateProfileInformation(),
        // Features::updatePasswords(),
        // Features::twoFactorAuthentication([
        //     'confirm' => true,
        //     'confirmPassword' => true,
            // 'window' => 0,
        // ]),
        // Features::passkeys([
        //     'confirmPassword' => true,
        // ]),
    ],

Checklist de vérification

Après la migration, vérifiez au minimum ce qui suit.
1

Vérifier login / logout

Connectez-vous avec un utilisateur existant et vérifiez la persistance de la session.
2

Vérifier l'inscription

L’inscription d’un nouvel utilisateur aboutit et redirige vers l’écran attendu.
3

Vérifier la réinitialisation de mot de passe

Envoi de l’e-mail, lien avec token, changement effectif — toute la chaîne.

Bénéfices post-migration

Votre application se rapproche de la même base Fortify que les starter kits actuels. Vous pourrez donc plus facilement activer la 2FA ou les passkeys plus tard.

Laravel Fortify et starter kits

Consultez cette page pour approfondir la conception interne de Fortify, l’activation de la 2FA et des passkeys.

Références

Dernière modification le 13 juillet 2026