為什麼要從 laravel/ui 遷移
laravel/ui 在 Laravel 13 仍可運作。實際上 laravel/ui 最新版本就包含 Laravel 13 compatibility。
不過現行的官方 starter kit 是以 Fortify 為基礎。若繼續維持 laravel/ui,會與官方現況逐漸產生落差。如果你想維持既有的 Bootstrap + Blade 結構,同時提升未來的可維護性,將認證後端切換到 Fortify 會是有效的選擇。
遷移的全貌
此遷移只替換認證後端。不需要對 UI 進行大規模改版。- 由 Fortify 提供認證路由、認證處理
- 保留既有的 Bootstrap + Blade 範本
- 依需要調整表單的
action或欄位名稱
Fortify 是 headless 的認證後端。Fortify 本身不提供 UI,因此可以直接沿用既有的 Blade。
安裝 Fortify 的步驟
1
加入 Fortify 套件
2
公開 Fortify 的資源
3
執行資料庫遷移
4
刪除 `laravel/ui` 加入的 Auth 路由
刪除
routes/web.php 中的 Auth::routes(); 或 Auth::routes([...])。因為 Fortify 會提供 /login、/register、/forgot-password 等路由,必須避免重複。設定 FortifyServiceProvider
在由 php artisan fortify:install 公開的 app/Providers/FortifyServiceProvider.php 中綁定 view。如果要直接使用既有的
resources/views/auth,以下設定是遷移的重點。
Blade 範本最小修正
遷移後請確認既有 Blade 中的以下項目。- 表單的
action是否指向 Fortify 的 endpoint(例如:/login、/register、/forgot-password)。大多是用route('login')或route('register')這類 route name 指定,因此需要修正的地方應該不多。只有route(verification.resend')在 Fortify 是route('verification.send'),需要修正。
auth/passwords/reset.balde.php 需修正兩處:
停用不需要的功能
laravel/ui 中沒有的功能無法使用,因此在 config/fortify.php 停用。若準備了新的 view 檔案就可以啟用。
動作確認清單
遷移後,至少確認以下項目。1
確認登入 / 登出
以既有使用者登入,確認 session 正確維持。
2
確認註冊
確認新使用者註冊能通過,並被導向預期的畫面。
3
確認密碼重設
確認發送重設郵件、附 token 的連結、以及重設完成的整套流程。
遷移後的優點
進行此遷移後,你的應用會更接近現行 starter kit 的 Fortify 基礎。其結果是未來將更容易啟用 2FA 或 Passkeys。
Laravel Fortify 與 Starter Kit
想深入了解 Fortify 的內部設計、啟用 2FA、Passkeys,請參考這頁。