Skip to main content

前言

電子郵件驗證(Email Verification)是確認使用者是否實際擁有所登記電子郵件的機制。Laravel 標準提供寄送確認信與驗證處理,讓你能以最少實作建立安全的認證流程。
使用起始套件時,認證畫面與 email 驗證流程已內建。手動實作時,請依本頁步驟自行定義 model、路由、view。

Model 與資料庫的準備

實作 MustVerifyEmail

確認 App\Models\User 有實作 Illuminate\Contracts\Auth\MustVerifyEmail
加入此介面後,新註冊使用者會自動收到確認信。若非使用起始套件而手動實作註冊,請在註冊成功後觸發 Registered 事件。

確認 email_verified_at 欄位

users 資料表需有 email_verified_at 欄位。一般預設 0001_01_01_000000_create_users_table.php 已包含。

路由(3 條路由)

email 驗證需定義 verification.noticeverification.verifyverification.send 3 條路由。
1

定義驗證通知顯示路由(verification.notice)

對未驗證使用者顯示「請確認電子郵件」的畫面。
2

定義驗證處理路由(verification.verify)

當使用者點擊信中連結時,驗證簽章 URL 並完成認證。
3

定義重新寄送路由(verification.send)

使用者遺失確認信時重新寄送。

保護路由

要只允許已驗證使用者存取,使用 verified middleware。通常與 auth 一起用。
未驗證使用者存取時,Laravel 會自動導向 verification.notice

自訂

要自訂確認信內容,在 AppServiceProviderboot 方法設定 VerifyEmail::toMailUsing

事件

Email 驗證時會觸發 Illuminate\Auth\Events\Verified 事件。起始套件會自動處理,手動實作時請視需要加入事件處理。
最後修改於 2026年8月2日