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

# Migrations-Guide von laravel/ui zu Fortify

> Anleitung für bestehende Projekte mit dem Auth-Scaffold von laravel/ui, um ausschließlich das Auth-Backend nach Fortify zu migrieren.

## Warum von `laravel/ui` migrieren?

`laravel/ui` funktioniert auch mit Laravel 13. Das aktuelle Release von `laravel/ui` enthält bereits Laravel-13-Kompatibilität.

Die aktuellen offiziellen Starterkits basieren jedoch auf Fortify. Wer `laravel/ui` weiter betreibt, entfernt sich schrittweise vom offiziellen Ist-Zustand.\
Wenn Sie Ihr Bestand mit Bootstrap + Blade beibehalten, aber die Wartbarkeit für die Zukunft erhöhen möchten, ist es sinnvoll, das Auth-Backend zu Fortify zu ziehen.

## Gesamtübersicht der Migration

Bei dieser Migration wird **ausschließlich das Auth-Backend** ausgetauscht. Ein UI-Redesign ist nicht nötig.

* Fortify stellt Auth-Routen und -Verarbeitung bereit
* Vorhandene Bootstrap + Blade-Templates bleiben in Nutzung
* Formular-`action` und Feldnamen werden bei Bedarf punktuell angepasst

<Info>
  Fortify ist ein headless Auth-Backend. Da Fortify selbst kein UI mitbringt, können Sie Ihr vorhandenes Blade unverändert nutzen.
</Info>

## Fortify-Installation

<Steps>
  <Step title="Fortify-Paket hinzufügen">
    ```bash theme={null}
    composer require laravel/fortify
    ```
  </Step>

  <Step title="Fortify-Ressourcen veröffentlichen">
    ```bash theme={null}
    php artisan fortify:install
    ```
  </Step>

  <Step title="Migrationen ausführen">
    ```bash theme={null}
    php artisan migrate
    ```
  </Step>

  <Step title="Von `laravel/ui` ergänzte Auth-Routen entfernen">
    Entfernen Sie in `routes/web.php` `Auth::routes();` bzw. `Auth::routes([...])`. Da Fortify die Routen `/login`, `/register`, `/forgot-password` u. a. bereitstellt, müssen Duplikate vermieden werden.
  </Step>
</Steps>

## `FortifyServiceProvider` konfigurieren

In dem durch `php artisan fortify:install` veröffentlichten `app/Providers/FortifyServiceProvider.php` verknüpfen Sie die Views.\
Wenn Sie die vorhandenen `resources/views/auth` unverändert verwenden möchten, sind folgende Einstellungen der Kern der Migration.

```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 Anpassungen an Blade-Templates

Prüfen Sie nach der Migration die folgenden Punkte in den bestehenden Blades:

* Zeigt der Formular-`action` auf einen Fortify-Endpoint (z. B. `/login`, `/register`, `/forgot-password`)? Da meist die Route-Namen wie `route('login')` oder `route('register')` verwendet werden, gibt es kaum Anpassungsbedarf. Lediglich `route('verification.resend')` heißt in Fortify `route('verification.send')` und muss angepasst werden.

In `auth/passwords/reset.blade.php` sind zwei Stellen anzupassen:

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

↓

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

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

↓

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

## Nicht benötigte Features deaktivieren

Funktionen, die es in `laravel/ui` nicht gab, sind zunächst nicht nutzbar; deaktivieren Sie sie in `config/fortify.php`. Wenn Sie neue View-Dateien anlegen, können Sie sie aktivieren.

```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,
        // ]),
    ],
```

## Checkliste zur Funktionsprüfung

Nach der Migration prüfen Sie mindestens Folgendes:

<Steps>
  <Step title="Login / Logout prüfen">
    Melden Sie sich mit einem bestehenden Nutzer an und stellen Sie sicher, dass die Session korrekt gehalten wird.
  </Step>

  <Step title="Registrierung prüfen">
    Legen Sie einen neuen Nutzer an und prüfen Sie, ob die Weiterleitung zur erwarteten Seite erfolgt.
  </Step>

  <Step title="Passwort-Reset prüfen">
    Prüfen Sie den vollständigen Ablauf – Reset-Mail, Link mit Token bis zum erfolgreichen Zurücksetzen.
  </Step>
</Steps>

## Vorteile nach der Migration

Nach der Migration nähert sich Ihre Anwendung dem aktuellen Starterkit auf Basis von Fortify an.\
Dadurch lassen sich 2FA und Passkeys künftig deutlich leichter aktivieren.

<Card title="Laravel Fortify und die Starterkits" icon="shield-check" href="/de/advanced/fortify">
  Möchten Sie tiefer in Fortifys internes Design sowie 2FA und Passkeys einsteigen, konsultieren Sie diese Seite.
</Card>

## Weiterführende Links

* [Repository Laravel Fortify](https://github.com/laravel/fortify)
* [Laravel 13.x Fortify-Dokumentation](https://github.com/laravel/docs/blob/13.x/fortify.md)
* [FortifyServiceProvider des React Starter Kits](https://github.com/laravel/react-starter-kit/blob/main/app/Providers/FortifyServiceProvider.php)


## Related topics

- [React – Einstieg mit Inertia × Laravel](/de/blog/react-introduction.md)
- [Migrationsleitfaden von der alten zur neuen Struktur](/de/advanced/app-structure-migration.md)
- [Erste Analyse: Laravel Passkeys (passkeys-server + @laravel/passkeys)](/de/blog/passkeys-introduction.md)
- [Laravel Fortify und Starter-Kits](/de/advanced/fortify.md)
- [Laravel MCP](/de/mcp.md)
