如何运作 RedirectIfAuthenticated.php?
How works RedirectIfAuthenticated.php?
I 运行 php artisan make:auth
in Laravel 5.6 众所周知,这确实生成了一个 HomeController.php
文件。
里面:
public function index(){
return view('home');
}
和Route::get('/home', 'HomeController@index')->name('home');
路由定义到web.php
.
但是 http://homestead.test/home
由于 RedirectIfAuthenticated.php
中间件,URI 重定向到 http://homestead.test/login
。因此 RedirectIfAuthenticated.php
作为全局中间件而不是路由中间件,尽管在 $routeMiddleware
属性 中定义 Kernel.php
.
为什么会这样?
我不知道什么?
如果您查看创建的控制器的构造函数,它正在使用 auth
中间件。
$this->middleware('auth');
如果您在 $routeMiddleware
查看您的 Kernel.php
:
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
这根本不涉及RedirectIfAuthenticated
。这会将任何已经通过身份验证的用户重定向到路由之外。 auth
中间件将所有未通过身份验证的人重定向到路由,'login'。
I 运行 php artisan make:auth
in Laravel 5.6 众所周知,这确实生成了一个 HomeController.php
文件。
里面:
public function index(){
return view('home');
}
和Route::get('/home', 'HomeController@index')->name('home');
路由定义到web.php
.
但是 http://homestead.test/home
由于 RedirectIfAuthenticated.php
中间件,URI 重定向到 http://homestead.test/login
。因此 RedirectIfAuthenticated.php
作为全局中间件而不是路由中间件,尽管在 $routeMiddleware
属性 中定义 Kernel.php
.
为什么会这样?
我不知道什么?
如果您查看创建的控制器的构造函数,它正在使用 auth
中间件。
$this->middleware('auth');
如果您在 $routeMiddleware
查看您的 Kernel.php
:
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
这根本不涉及RedirectIfAuthenticated
。这会将任何已经通过身份验证的用户重定向到路由之外。 auth
中间件将所有未通过身份验证的人重定向到路由,'login'。