前言
電子郵件驗證(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.notice、verification.verify、verification.send 3 條路由。
1
定義驗證通知顯示路由(verification.notice)
對未驗證使用者顯示「請確認電子郵件」的畫面。
2
定義驗證處理路由(verification.verify)
當使用者點擊信中連結時,驗證簽章 URL 並完成認證。
3
定義重新寄送路由(verification.send)
使用者遺失確認信時重新寄送。
保護路由
要只允許已驗證使用者存取,使用verified middleware。通常與 auth 一起用。
verification.notice。
自訂
要自訂確認信內容,在AppServiceProvider 的 boot 方法設定 VerifyEmail::toMailUsing。
事件
Email 驗證時會觸發Illuminate\Auth\Events\Verified 事件。起始套件會自動處理,手動實作時請視需要加入事件處理。