> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Guide de migration de laravel/ui vers Fortify

> Comment migrer uniquement le backend d'authentification vers Fortify pour les projets existants qui utilisent le scaffold d'authentification laravel/ui.

## 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

<Info>
  Fortify est un backend d'authentification headless. Il ne fournit pas d'UI, ce qui vous permet de conserver votre Blade existant.
</Info>

## Étapes d'installation de Fortify

<Steps>
  <Step title="Ajouter le package Fortify">
    ```bash theme={null}
    composer require laravel/fortify
    ```
  </Step>

  <Step title="Publier les ressources Fortify">
    ```bash theme={null}
    php artisan fortify:install
    ```
  </Step>

  <Step title="Exécuter les migrations">
    ```bash theme={null}
    php artisan migrate
    ```
  </Step>

  <Step title="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.
  </Step>
</Steps>

## 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é.

```php theme={null}
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.

```php theme={null}
    '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.

<Steps>
  <Step title="Vérifier login / logout">
    Connectez-vous avec un utilisateur existant et vérifiez la persistance de la session.
  </Step>

  <Step title="Vérifier l'inscription">
    L'inscription d'un nouvel utilisateur aboutit et redirige vers l'écran attendu.
  </Step>

  <Step title="Vérifier la réinitialisation de mot de passe">
    Envoi de l'e-mail, lien avec token, changement effectif — toute la chaîne.
  </Step>
</Steps>

## 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.

<Card title="Laravel Fortify et starter kits" icon="shield-check" href="/fr/advanced/fortify">
  Consultez cette page pour approfondir la conception interne de Fortify, l'activation de la 2FA et des passkeys.
</Card>

## Références

* [Dépôt Laravel Fortify](https://github.com/laravel/fortify)
* [Documentation Fortify Laravel 13.x](https://github.com/laravel/docs/blob/13.x/fortify.md)
* [FortifyServiceProvider du starter kit React](https://github.com/laravel/react-starter-kit/blob/main/app/Providers/FortifyServiceProvider.php)


## Related topics

- [Guide de migration de l'ancienne vers la nouvelle structure](/fr/advanced/app-structure-migration.md)
- [Guide de mise à niveau de Laravel 12 vers 13](/fr/blog/upgrade-12-to-13.md)
- [Mise à niveau de Laravel 8 vers 9](/fr/blog/upgrade-8-to-9.md)
- [Mise à niveau de Laravel 9 vers 10](/fr/blog/upgrade-9-to-10.md)
- [Vérification de l'e-mail (Email Verification)](/fr/verification.md)
