如何工作RedirectIfAuthenticated.php?

时间:2018-06-11 00:26:35

标签: php laravel authentication middleware artisan

我在Laravel 5.6中运行php artisan make:auth因为众所周知这确实生成了一个HomeController.php文件。

在里面:

public function index(){ return view('home'); }

Route::get('/home', 'HomeController@index')->name('home');路由定义为web.php

http://homestead.test/home URI重定向到http://homestead.test/login到期RedirectIfAuthenticated.php中间件。所以RedirectIfAuthenticated.php作为全局中间件而不是路由中间件,尽管在$routeMiddleware中的Kernel.php属性中定义。

为什么会这样?

我不知道什么?

1 个答案:

答案 0 :(得分:1)

如果你看一下创建的控制器的构造函数,它正在使用auth中间件。

$this->middleware('auth');

如果您在Kernel.php处查看$routeMiddleware

'auth' => \Illuminate\Auth\Middleware\Authenticate::class,

这根本不涉及RedirectIfAuthenticated。这将重定向已经过身份验证的任何用户远离路由。 auth中间件会将未经过身份验证的所有人重定向到路由,然后登录'。