使用Laravel自帶的郵箱驗證相關字段和功能

從 Laravel 5.7 起,Laravel 自帶了郵箱驗證的相關字段和功能。複製代碼

1.調整模型類

首先,調整下User 模型類,實現 MustVerifyEmail 接口php

App/User.php

.
.
.
// 這裏加上 MustVerifyEmail
class User extends Authenticatable implements MustVerifyEmail
.
.
.複製代碼

因爲 Laravel 在建立 User 類時就默認引入了 MustVerifyEmail 的命名空間,所以咱們不須要再次引入
web

2.調整路由

接下來咱們須要讓 Laravel 啓用與郵箱驗證相關的路由(驗證郵箱頁面、重發驗證郵件頁面等),操做也很簡單,只須要修改 web.php 文件:
bash

routes/web.php

// 在以前的路由里加上一個 verify 參數
Auth::routes(['verify' => true]);複製代碼

3.驗證郵箱中間件

Laravel 自帶了一個名爲 verified 的中間件,若是一個未驗證郵箱的用戶嘗試訪問一個配置了 verified 中間件的路由,Laravel 就會提示該用戶郵箱未激活。
測試

爲了測試這個的中間件,咱們修改一下以前的路由:spa

routes/web.php

// 在以前的路由後面配上中間件
Route::get('/', 'PagesController@root')->name('root')->middleware('verified');複製代碼


實際上 Laravel 是經過 users 表中的 email_verified_at 字段來判斷用戶是否已經驗證過郵箱,對於新註冊的用戶這個字段默認爲 null
code

一旦users 表中的email_verified_at有值,則表示郵箱已經驗證過。中間件

相關文章
相關標籤/搜索