简介
我的问题是,在尝试使用 auth
中间件将路由限制为登录用户时,我没有登录用户,但在重定向回登录页面时我确实有一个。
详
假设我只有这两条路线
使用 Web 中间件进行路由
$router->group(['middleware' => 'web'], function($router) {
/** @var Registrar $router */
$router->get('/', ['as' => 'home', 'uses' => 'HomeController@index']);
});
使用身份验证中间件进行路由
$router->group(['middleware' => 'auth'], function($router) {
$router->get('/listings', ['as' => 'listings', 'uses' => 'ListingController@index']);
});
第一条路线工作没有问题,但是第二条路线将我重定向回登录页面。这应该只在我没有登录用户但之前登录时完成!这很奇怪。
当我将这两行代码添加到web
组中使用的Middleware
Illuminate'Cookie'Middleware'AddQueuedCookiesToResponse
的handle
函数时
$user = 'Auth::user();
dd($user);
我正在转储当前登录的用户对象。但是,在FeedParser'Http'Middleware'Authenticate
中间件中添加这些行时,我null
为转储。用户在一个中间件中登录,而不是在另一个中间件中登录,这怎么可能?我需要做什么才能使其再次工作?或者更好:您需要哪些更多信息来帮助我解决问题
更新
如果有人要求更多信息或更多代码,我会在这里发布
我想这发生在升级到 5.2 之后?
我认为路由应该包括web
和auth
中间件,例如:
Route::group(['middleware' => ['web', 'auth']], function() {
Route::get('home', 'HomeController@dashboard')->name('home');
});