我有下面一行代碼在我的控制器:如何在laravel中驗證身份驗證?
public function __construct() {
$this->middleware('auth');
}
所以基本上運行在控制器的任何方法之前,該用戶進行身份驗證它檢查這行代碼確實是,我有一點點混亂關於這行代碼雖然,我想知道的是這個屬性middleware
來自何處?以及如何將這個方法middleware
真的包含到我的控制器中?
謝謝。
我有下面一行代碼在我的控制器:如何在laravel中驗證身份驗證?
public function __construct() {
$this->middleware('auth');
}
所以基本上運行在控制器的任何方法之前,該用戶進行身份驗證它檢查這行代碼確實是,我有一點點混亂關於這行代碼雖然,我想知道的是這個屬性middleware
來自何處?以及如何將這個方法middleware
真的包含到我的控制器中?
謝謝。
該行將中間件應用於所有控制器方法。這個特定的中間件檢查用戶是否被認證。如果用戶沒有通過身份驗證,中間件會將他重定向到某個定義的頁面。
中間件爲過濾進入您的應用程序的HTTP請求提供了一種方便的機制。例如,Laravel包含一箇中間件,用於驗證應用程序的用戶是否已通過身份驗證。如果用戶未通過身份驗證,則中間件會將用戶重定向到登錄屏幕。但是,如果用戶通過身份驗證,中間件將允許請求繼續進入應用程序。
您可以在docs瞭解更多關於中間件的信息。
Middleware
s列在App/Http/Kernel.php
文件中。從那裏你可以看到,auth
使用\App\Http\Middleware\Authenticate
類來檢查請求。
YourController
擴展Controller
類
class YourController extends Controller { }
如果您導航到Controller類,你可以找到中間件方法和屬性。
vendor/laravel/framework/src/Illuminate/Routing/Controller.php
protected $middleware = [];
public function middleware($middleware, array $options = [])
{
foreach ((array) $middleware as $m) {
$this->middleware[] = [
'middleware' => $m,
'options' => &$options,
];
}
}
Laravel App\Http\Controllers\Controller
延伸Illuminate\Routing\Controller
類,其中包含的middleware
方法和屬性。