iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 19
0
Software Development

後端PHP+Laravel--新手實戰日記系列 第 19

Day19-Laravel新手基礎訓-郵件驗證(Email Verification)

胎嘎侯~

生活中註冊某些網站會員時,有些會要求進行郵件驗證(Email Verification),怕用戶填錯email,尤其當主要的登入欄位是email時,再者是忘記密碼等情形下,郵件驗證可以減少問題的發生;此外,也是為了防止簡單的機器人,經過驗證的電子郵件可以防止濫用行為,維持網站與真正用戶緊密的關係。

今天參考官方的Email Verification文件內容,一起進行簡單的郵件驗證實作吧!

Email Verification

前置作業:請先將您的.env檔連上DB & 快速生成含註冊與登入的頁面
跟著官方文件

1.打開User.php檔案,檢查有沒有Illuminate \ Contracts \ Auth \ MustVerifyEmail

2.將extends後面改成與文件相同,加上implements MustVerifyEmail。這邊的implements是實現interface的方式。

day19-1

3.確認users table的Schema裡有沒有email_verified_at(框架預設),執行php artisan migrate生成資料表,到DB查看是否存在欄位名稱。

4.將文件上的Auth::routes(['verify' => true]);加到web.php

5.下一個是Protecting Routes,將下列受middleware保護的入由加到web.php

Route::get('profile', function () {
   return "my email";
})->middleware('verified');

由於verified這個middleware已經在Kernel中定義,所以我們可以直接使用它。

6.要能讓email驗證就必須一個mail server來實現,查看.env檔會發現Laravel預設默認的是mailtrap,請先申請會員。
https://ithelp.ithome.com.tw/upload/images/20191004/20119022Y6QlDVLttl.png

7.申請完成後,進入.env檔修改mailtrap顯示的配置訊息

8.註冊一個帳號,輸入http://127.0.0.1:8000/profile如看到下圖,代表離成功不遠。

此時觀察我們DB的情形,由於email尚未驗證,所以為null。

9.重回mailtrap,看到左欄有新信,就是剛剛Laravel幫我們發出的郵件驗證信件。

10.按下Verify Email Address後,會跳轉回成功登入頁面。

11.再回到http://127.0.0.1:8000/profile看看,頁面出現當初路由寫的return的 my email。

12.最後!回到DB查看email_verified_at的狀況。

今天手把手的簡單email驗證就到這裡,週末見!


上一篇
Day18-Laravel新手基礎訓- The Basic Validation
下一篇
Day20- Laravel新手基礎訓-Eloquent ORM
系列文
後端PHP+Laravel--新手實戰日記30

尚未有邦友留言

立即登入留言