2017-01-01 8 views
1

私は私のコントローラで、次のコード行がありますので、基本的にこのコード行が何laravelでの認証の確認はどのように行われますか?

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

をコントローラ内の任意のメソッドは、ユーザーが認証されていることを実行する前に、それがチェックされ、私は少し混乱を持っていますしかし、このコード行については、私が知りたいことは、このプロパティがどこにあるのですか?middleware来るフォーム?どのようにこの方法はmiddleware本当に私のコントローラに含まれるのですか?

ありがとうございます。

答えて

1

この行は、すべてのコントローラメソッドにミドルウェアを適用します。この特定のミドルウェアは、ユーザーが認証されているかどうかをチェックします。ユーザーが認証されていない場合、ミドルウェアは定義されたページにリダイレクトします。

ミドルウェアは、アプリケーションに入るHTTP要求をフィルタリングするための便利なメカニズムを提供します。たとえば、Laravelには、アプリケーションのユーザーが認証されていることを確認するミドルウェアが含まれています。ユーザーが認証されていない場合、ミドルウェアはユーザーをログイン画面にリダイレクトします。ただし、ユーザーが認証されている場合、ミドルウェアは要求をアプリケーションにさらに進めることができます。

ミドルウェアの詳細については、docsを参照してください。

0

Middlewareは、App/Http/Kernel.phpファイル内にリストされています。そこから、authは、要求をチェックする\App\Http\Middleware\Authenticateクラスを使用していることが分かります。

0

YourControllerを使用すると、コントローラクラスにナビゲートする場合は、ミドルウェアメソッドとプロパティを見つけることができますControllerクラスに

class YourController extends 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\Controllermiddlewareメソッドとプロパティを含むIlluminate\Routing\Controllerクラスを拡張します。

関連する問題