首页 > 解决方案 > RedirectIfAuthenticated.php 是如何工作的?

问题描述

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

里面:

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

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

但是http://homestead.test/homeURI 重定向到http://homestead.test/login适当的RedirectIfAuthenticated.php中间件。所以RedirectIfAuthenticated.php作为全局中间件而不是路由中间件工作,尽管$routeMiddlewareKernel.php.

为什么会这样?

我不知道什么?

标签: phplaravelauthenticationmiddlewarelaravel-artisan

解决方案


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

$this->middleware('auth');

如果您查看您的Kernel.phpat $routeMiddleware

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

这个完全不涉及RedirectIfAuthenticated。这会将任何已经通过身份验证的用户重定向到路由之外。auth中间件将所有未通过身份验证的人重定向到路由“登录” 。


推荐阅读