# Laravel 驗證信箱 User model 需要 implements MustVerifyEmail: `class User extends Authenticatable implements MustVerifyEmail` 調整路由 *routes/web.php* // 加上 verify 參數 `Auth::routes(['verify' => true]);` // 為路由添加 middleware `verified`,若用戶尚未驗證信箱而嘗試訪問這個頁面,會提示用戶尚未驗證信箱。 `Route::get('/', [PagesController::class, 'root'])->name('root')->middleware('verified');` ![](https://i.imgur.com/mo2WXqv.png) 而實際上,Laravel 是透過 users 表中的 `email_verified_at` 欄位來判斷用戶是否已經驗證過信箱,新註冊的用戶預設值為 `null` ![](https://i.imgur.com/9UIt7c2.png) 驗證 Email 的功能要由 mail server 來實現,查看 .env 檔得知 Laravel 預設使用的是 [mailtrap](https://mailtrap.io/),要先註冊會員才能使用。 ![](https://i.imgur.com/MDbQpyK.png) 申請完成後,進入 .env 檔修改 mail 設置 ![](https://i.imgur.com/Wyw5rDg.png) 到提示驗證信箱畫面,點擊 `click here to request another` ![](https://i.imgur.com/TqvPNZw.png) 回到 mailtrap 就會收到驗證信囉 ![](https://i.imgur.com/vRZq8Cq.png) 點擊 `Verify Email Address` 後就會跳轉到首頁了,也不會再出現提示驗證信箱的訊息 ![](https://i.imgur.com/g8Dcbl9.png) `email_verified_at` 也變成驗證信箱的時間 ![](https://i.imgur.com/XEHYEhp.png) 新註冊的帳號也能收到驗證信 ![](https://i.imgur.com/ACL81Bl.png) 這樣就測試成功囉~可以把先前添加的 middleware 去除 *routes/web.php* `Route::get('/', [PagesController::class, 'root'])->name('root');` ###### tags: `Laravel`