Skip to main content

Documentation Index

Fetch the complete documentation index at: https://kawax.biz/llms.txt

Use this file to discover all available pages before exploring further.

Why migrate from laravel/ui

laravel/ui still works with Laravel 13. In fact, the latest release of laravel/ui includes Laravel 13 compatibility. However, current official starter kits are Fortify-based. Continuing to use laravel/ui gradually widens the gap with the official direction. If you want to keep your existing Bootstrap + Blade setup while improving long-term maintainability, migrating your authentication backend to Fortify is a practical step.

Migration overview

This migration replaces only the authentication backend. You do not need to overhaul your UI.
  • Fortify provides authentication routes and logic
  • Your existing Bootstrap + Blade templates remain intact
  • You make minimal adjustments to form action attributes and input names
Fortify is a headless authentication backend. Because Fortify ships no UI of its own, you can continue using your existing Blade views without major changes.

Install Fortify

1

Add the Fortify package

composer require laravel/fortify
2

Publish Fortify resources

php artisan fortify:install
3

Run migrations

php artisan migrate
4

Remove the Auth routes added by laravel/ui

Delete Auth::routes(); or Auth::routes([...]) from routes/web.php. Fortify registers routes such as /login, /register, and /forgot-password, so you must remove the duplicates.

Configure FortifyServiceProvider

Wire up your views in the app/Providers/FortifyServiceProvider.php published by php artisan fortify:install. If you keep your existing views under resources/views/auth, the following configuration covers the migration:
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');
}

Make minimal Blade template changes

After the migration, verify the following in your existing Blade views:
  • Form action attributes point to Fortify endpoints (e.g., /login, /register, /forgot-password). Most views already use named routes such as route('login') or route('register'), so very few changes are needed. The one exception is route('verification.resend'), which Fortify registers as route('verification.send') — update that reference.
auth/passwords/reset.blade.php requires two changes:
<input type="hidden" name="token" value="{{ $token }}">
<input type="hidden" name="token" value="{{ $request->route('token') }}">
{{ $email ?? old('email') }}
{{ old('email', $request->email) }}

Disable unused features

Features that did not exist in laravel/ui should be disabled in config/fortify.php. You can enable them later by providing the corresponding view files.
'features' => [
    Features::registration(),
    Features::resetPasswords(),
    // Features::emailVerification(),
    // Features::updateProfileInformation(),
    // Features::updatePasswords(),
    // Features::twoFactorAuthentication([
    //     'confirm' => true,
    //     'confirmPassword' => true,
    //     // 'window' => 0,
    // ]),
    // Features::passkeys([
    //     'confirmPassword' => true,
    // ]),
],

Verification checklist

After the migration, verify at least the following:
1

Verify login and logout

Log in with an existing user and confirm the session is maintained correctly.
2

Verify registration

Register a new user and confirm the redirect goes to the expected screen.
3

Verify password reset

Walk through the full reset flow: send the reset email, follow the token link, and complete the password change.

Benefits after migration

Once you complete this migration, your application aligns with the same Fortify-based foundation used by current official starter kits. As a result, enabling 2FA and Passkeys in the future becomes significantly easier.

Laravel Fortify and starter kits

Learn about Fortify’s internal design, 2FA, and how to enable Passkeys.

References

Last modified on May 10, 2026