使用 Auth 中間件來驗證用戶的身份時,如果用戶未通過身份驗證,則 Auth 中間件會把用戶重定向到登錄頁面。如果用戶通過了身份驗證,則 Auth 中間件會通過此請求並接着往下執行。Laravel 框架默認為我們內置了一些中間件,例如身份驗證、CSRF 保護等。所有的中間件文件都被放在項目的 app/Http/Middleware
文件夾中。
<?php namespace App\Http\Controllers; . . . class UsersController extends Controller { public function __construct() { $this->middleware('auth', [ 'except' => ['show', 'create', 'store'] ]); } . . . }
__construct
方法中調用了 middleware
方法,該方法接收兩個參數,第一個為中間件的名稱,第二個為要進行過濾的動作。我們通過 except
方法來設定 指定動作 不使用 Auth 中間件進行過濾,意為 —— 除了此處指定的動作以外,所有其他動作都必須登錄用戶才能訪問,類似於黑名單的過濾機制。相反的還有 only
白名單方法,將只過濾指定動作。