我有下面一行代码在我的控制器:如何在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
方法和属性。