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

# Migratiegids van laravel/ui naar Fortify

> Voor bestaande projecten die de authenticatiescaffolding van laravel/ui gebruiken: een stappenplan om alleen de authenticatiebackend te migreren naar Fortify.

## Waarom migreren vanaf `laravel/ui`

`laravel/ui` werkt ook in Laravel 13. De nieuwste release van `laravel/ui` bevat zelfs Laravel 13-compatibiliteit.

De huidige officiële starter kits zijn echter gebaseerd op Fortify. Blijf je op `laravel/ui` draaien, dan drijf je langzaam af van waar de officiële stack nu staat.
Wil je je bestaande Bootstrap + Blade-opzet behouden en tegelijk de onderhoudbaarheid voor de toekomst verbeteren, dan is het migreren van je authenticatiebackend naar Fortify een goede zet.

## Het migratieplaatje in vogelvlucht

Bij deze migratie vervang je **alleen de authenticatiebackend**. Een grootschalige UI-vernieuwing is niet nodig.

* Fortify levert de authenticatieroutes en -verwerking
* Je bestaande Bootstrap + Blade-templates blijven behouden
* Waar nodig pas je de `action` en invoernamen van formulieren aan

<Info>
  Fortify is een headless authenticatiebackend. Fortify zelf levert geen UI, dus je kunt je bestaande Blade-bestanden gewoon blijven gebruiken.
</Info>

## Installatiestappen voor Fortify

<Steps>
  <Step title="Voeg de Fortify-package toe">
    ```bash theme={null}
    composer require laravel/fortify
    ```
  </Step>

  <Step title="Publiceer de resources van Fortify">
    ```bash theme={null}
    php artisan fortify:install
    ```
  </Step>

  <Step title="Voer de migraties uit">
    ```bash theme={null}
    php artisan migrate
    ```
  </Step>

  <Step title="Verwijder de Auth-routes die `laravel/ui` toevoegde">
    Verwijder `Auth::routes();` of `Auth::routes([...])` uit `routes/web.php`. Fortify levert routes zoals `/login`, `/register` en `/forgot-password`, dus je moet duplicaten voorkomen.
  </Step>
</Steps>

## De `FortifyServiceProvider` configureren

In het door `php artisan fortify:install` gepubliceerde bestand `app/Providers/FortifyServiceProvider.php` koppel je de views.
Wil je je bestaande `resources/views/auth` blijven gebruiken, dan is deze configuratie de kern van de migratie.

```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');
}
```

## Minimale aanpassingen aan de Blade-templates

Controleer na de migratie het volgende in je bestaande Blade-bestanden.

* Wijst de `action` van de formulieren naar de endpoints van Fortify (bijv. `/login`, `/register`, `/forgot-password`)? In de meeste gevallen verwijs je via routenamen zoals `route('login')` en `route('register')`, dus er zou weinig aan te passen zijn. Alleen `route('verification.resend')` heet in Fortify `route('verification.send')` en moet dus worden aangepast.

In `auth/passwords/reset.balde.php` zijn twee aanpassingen nodig.

```
<input type="hidden" name="token" value="{{ $token }}">
```

↓

```
<input type="hidden" name="token" value="{{ $request->route('token') }}">
```

```
{{ $email ?? old('email') }}
```

↓

```
{{ old('email', $request->email) }}
```

## Overbodige functies uitschakelen

Functies die `laravel/ui` niet had, kun je niet gebruiken; schakel ze daarom uit in `config/fortify.php`. Je kunt ze later inschakelen door nieuwe viewbestanden aan te maken.

```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 voor de functionele controle

Controleer na de migratie minimaal het volgende.

<Steps>
  <Step title="Controleer inloggen / uitloggen">
    Log in met een bestaande gebruiker en controleer of de sessie correct behouden blijft.
  </Step>

  <Step title="Controleer registreren">
    Controleer of een nieuwe gebruikersregistratie slaagt en er naar het verwachte scherm wordt geredirect.
  </Step>

  <Step title="Controleer het resetten van wachtwoorden">
    Controleer de volledige flow: het versturen van de resetmail, de link met token en het voltooien van de reset.
  </Step>
</Steps>

## De voordelen na de migratie

Met deze migratie komt je app dicht bij dezelfde Fortify-basis als de huidige starter kits.
Daardoor wordt het in de toekomst makkelijker om 2FA of passkeys in te schakelen.

<Card title="Laravel Fortify en de starter kits" icon="shield-check" href="/nl/advanced/fortify">
  Raadpleeg deze pagina als je verder wilt met het interne ontwerp van Fortify en het inschakelen van 2FA en passkeys.
</Card>

## Referentielinks

* [Laravel Fortify repository](https://github.com/laravel/fortify)
* [Laravel 13.x Fortify-documentatie](https://github.com/laravel/docs/blob/13.x/fortify.md)
* [De FortifyServiceProvider van de React Starter Kit](https://github.com/laravel/react-starter-kit/blob/main/app/Providers/FortifyServiceProvider.php)


## Related topics

- [Migratiegids van oude naar nieuwe structuur](/nl/advanced/app-structure-migration.md)
- [Laravel Fortify en de starter kits](/nl/advanced/fortify.md)
- [Upgradegids van Laravel 11 naar 12](/nl/blog/upgrade-11-to-12.md)
- [FAQ over de nieuwe appstructuur van Laravel 11+](/nl/advanced/app-structure-faq.md)
- [Introductie Vue.js — de basis voor Inertia × Laravel](/nl/blog/vue-introduction.md)
