Email 認證
Email Verification
事件
很多Web 應用程式會要求使用者在使用之前進行Email 位址驗證。 Laravel 不會強迫你在每個應用程式中重複實作它,而是提供了便捷的方法來發送和校驗電子郵件的驗證請求。
Model 準備在開始之前,需要驗證你的
App\User
模型是否實作了Illuminate\Contracts\Auth\MustVerifyEmail
契約:
<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements MustVerifyEmail{ use Notifiable; // ... }
資料庫注意事項
Email 驗證欄位接下來,你的
user
需要包含一個
欄位用來儲存Email 位址通過驗證的時間。預設情況下,Laravel 框架中 users 表的資料遷移已經包含了這個欄位。所以,您需要做的就只是執行資料庫遷移:
php artisan migrate
#路由
Laravel 的
類包含了發送驗證連結和驗證Email 的必要邏輯。透過將verify 選項傳遞給
Auth::routes方法,就能為這個控制器註冊所需的路由:
Auth::routes(['verify' => true]);
保護路由
路由中間件可用於僅允許經過驗證的使用者存取指定路由。 Laravel 附帶了
中介軟體,它定義在 Illuminate\Auth\Middleware\EnsureEmailIsVerified。由於此中間件已在應用程式的HTTP 核心中註冊,因此您需要做的就是將中間件附加到路由定義:
Route::get('profile', function () { // Only verified users may enter... })->middleware('verified');
檢視
protected $redirectTo = '/dashboard';###############事件######Laravel 可以在驗證過程中觸發事件, 你應該在###EventServiceProvider### 中註冊監聽者: ###
/** * 应用程序的事件监听器 * * @var array */ protected $listen = [ 'Illuminate\Auth\Events\Verified' => [ 'App\Listeners\LogVerifiedUser', ], ];###本篇首發在###LearnKu.com### 網站上。 ###