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

# Guida alla migrazione da laravel/ui a Fortify

> Per i progetti esistenti che usano lo scaffold di autenticazione di laravel/ui, spiega la procedura per migrare a Fortify solo il backend di autenticazione.

## Perché migrare da `laravel/ui`

`laravel/ui` funziona anche su Laravel 13. In effetti l'ultima release di `laravel/ui` include la compatibilità con Laravel 13.

Tuttavia, gli starter kit ufficiali attuali sono basati su Fortify. Continuare a usare `laravel/ui` finisce per allontanarti dallo stato attuale ufficiale.\
Se vuoi mantenere la struttura Bootstrap + Blade esistente aumentando allo stesso tempo la manutenibilità futura, è efficace migrare a Fortify il backend di autenticazione.

## Quadro generale della migrazione

Questa migrazione sostituisce **solo il backend di autenticazione**. Non serve un grande restyling della UI.

* Fortify fornisce le rotte e la logica di autenticazione
* I template Bootstrap + Blade esistenti continuano a essere usati
* Nella misura necessaria, si adattano `action` dei form e nomi degli input

<Info>
  Fortify è un backend di autenticazione headless. Fortify di per sé non fornisce UI, quindi puoi continuare a usare le Blade esistenti.
</Info>

## Procedura di installazione di Fortify

<Steps>
  <Step title="Aggiungi il pacchetto Fortify">
    ```bash theme={null}
    composer require laravel/fortify
    ```
  </Step>

  <Step title="Pubblica le risorse di Fortify">
    ```bash theme={null}
    php artisan fortify:install
    ```
  </Step>

  <Step title="Esegui le migration">
    ```bash theme={null}
    php artisan migrate
    ```
  </Step>

  <Step title="Rimuovi le rotte di Auth aggiunte da `laravel/ui`">
    In `routes/web.php` rimuovi `Auth::routes();` o `Auth::routes([...])`. Fortify fornisce già rotte come `/login`, `/register`, `/forgot-password` e va evitata la duplicazione.
  </Step>
</Steps>

## Configurare il `FortifyServiceProvider`

Nel file `app/Providers/FortifyServiceProvider.php` pubblicato da `php artisan fortify:install`, collega le view.\
Se vuoi usare così come sono le `resources/views/auth` esistenti, la parte chiave della migrazione è la seguente configurazione.

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

## Modifiche minime ai template Blade

Dopo la migrazione, verifica nelle Blade esistenti quanto segue.

* L'`action` del form punta agli endpoint di Fortify (es. `/login`, `/register`, `/forgot-password`). Nella maggior parte dei casi, essendo specificato tramite route name come `route('login')` o `route('register')`, ci sono pochi punti da modificare. Solo `route('verification.resend')` va cambiato in `route('verification.send')`, come previsto da Fortify.

In `auth/passwords/reset.balde.php` servono due modifiche.

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

↓

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

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

↓

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

## Disabilita le funzionalità superflue

Le funzionalità che non erano in `laravel/ui` non sono utilizzabili, quindi disabilitale in `config/fortify.php`. Puoi abilitarle preparando nuovi file di view.

```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 di verifica

Dopo la migrazione verifica almeno quanto segue.

<Steps>
  <Step title="Verifica login / logout">
    Fai login con un utente esistente e controlla che la sessione venga mantenuta correttamente.
  </Step>

  <Step title="Verifica la registrazione">
    Controlla che la registrazione di un nuovo utente vada a buon fine e reindirizzi alla schermata prevista.
  </Step>

  <Step title="Verifica il reset password">
    Verifica l'intero flusso, dall'invio dell'email di reset al link con token, fino al completamento del cambio password.
  </Step>
</Steps>

## Vantaggi dopo la migrazione

Eseguendo questa migrazione, la tua applicazione si avvicina alla base Fortify degli starter kit attuali.\
Di conseguenza sarà più facile abilitare in futuro 2FA o passkey.

<Card title="Laravel Fortify e starter kit" icon="shield-check" href="/it/advanced/fortify">
  Consulta questa pagina se vuoi procedere fino al design interno di Fortify, 2FA e abilitazione delle passkey.
</Card>

## Link di riferimento

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


## Related topics

- [Guida di migrazione dalla vecchia alla nuova struttura](/it/advanced/app-structure-migration.md)
- [FAQ sulla nuova struttura dell'app da Laravel 11](/it/advanced/app-structure-faq.md)
- [Guida all'aggiornamento da Laravel 11 a 12](/it/blog/upgrade-11-to-12.md)
- [Guida allo sviluppo di app con l'API del motore - VOICEVOX for Laravel](/it/packages/laravel-voicevox/app-guide.md)
- [Laravel Fortify e gli starter kit](/it/advanced/fortify.md)
