在身份验证中间件中没有登录用户,但在其他中间件中没有登录用户


No logged in user in Authenticate middleware but in other Middlewares

简介
我的问题是,在尝试使用 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'AddQueuedCookiesToResponsehandle函数时

$user = 'Auth::user();
dd($user);

我正在转储当前登录的用户对象。但是,在FeedParser'Http'Middleware'Authenticate中间件中添加这些行时,我null为转储。用户在一个中间件中登录,而不是在另一个中间件中登录,这怎么可能?我需要做什么才能使其再次工作?或者更好:您需要哪些更多信息来帮助我解决问题

更新
如果有人要求更多信息或更多代码,我会在这里发布

我想这发生在升级到 5.2 之后?

我认为路由应该包括webauth中间件,例如:

Route::group(['middleware' => ['web', 'auth']], function() {
    Route::get('home', 'HomeController@dashboard')->name('home');
});