2017-01-01 29 views
1

我有下面一行代碼在我的控制器:如何在laravel中驗證身份驗證?

public function __construct() { 
     $this->middleware('auth'); 
} 

所以基本上運行在控制器的任何方法之前,該用戶進行身份驗證它檢查這行代碼確實是,我有一點點混亂關於這行代碼雖然,我想知道的是這個屬性middleware來自何處?以及如何將這個方法middleware真的包含到我的控制器中?

謝謝。

回答

1

該行將中間件應用於所有控制器方法。這個特定的中間件檢查用戶是否被認證。如果用戶沒有通過身份驗證,中間件會將他重定向到某個定義的頁面。

中間件爲過濾進入您的應用程序的HTTP請求提供了一種方便的機制。例如,Laravel包含一箇中間件,用於驗證應用程序的用戶是否已通過身份驗證。如果用戶未通過身份驗證,則中間件會將用戶重定向到登錄屏幕。但是,如果用戶通過身份驗證,中間件將允許請求繼續進入應用程序。

您可以在docs瞭解更多關於中間件的信息。

0

Middleware s列在App/Http/Kernel.php文件中。從那裏你可以看到,auth使用\App\Http\Middleware\Authenticate類來檢查請求。

0

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, 
     ]; 
    } 
} 
0

Laravel App\Http\Controllers\Controller延伸Illuminate\Routing\Controller類,其中包含的middleware方法和屬性。