Laravel 5.2, auth :: check вернуть true после входа в систему, но false после перенаправления

Я пытаюсь использовать систему аутентификации, которая встроена в laravel 5.2. Кажется, что логин работает правильно, если я заменю оператор return с помощью Auth :: check (), он возвращает true. Но когда я перенаправляюсь к '/', Auth :: check () внезапно возвращает false в моем промежуточном ПО Auth.

Сеансы Создание метода:

public function create(Request $request) { $email = $request->email; $password = $request->password; if(Auth::attempt(['email' => $email, 'password' => $password])) { return redirect()->intended('/'); // returns true when replaced with Auth::check(); } return redirect("login"); } 

Auth Middleware:

 public function handle($request, Closure $next, $guard = null) { if (Auth::guest()) { if ($request->ajax() || $request->wantsJson()) { return response('Unauthorized.', 401); } else { return var_dump(Auth::check()); // returns false } } return $next($request); } 

Файл маршрутов:

 Route::post('/create-session', 'SessionController@create'); Route::get('/logout', 'SessionController@logout'); Route::get('/login', function() { return view('login'); }); Route::group(['middleware' => ['web', 'auth']], function(){ Route::get('/', 'HomeController@getIndex'); }); 

Для всех маршрутов, требующих сеансов (которые используются Auth), должно быть применено промежуточное ПО «web» .

Также:

Ваш Auth::check() выполняется в блоке кода, который выполняется только в том случае, если Auth::guest() является истинным. Auth::guest() – это инверсия Auth::check() .

Таким образом, вы говорите в своем промежуточном программном обеспечении: если текущий пользователь является гостем (не аутентифицирован), проверьте, являются ли они аутентифицированным пользователем, который всегда будет ложным на данном этапе.

Обновить:

Основываясь на ваших комментариях: не добавляйте промежуточное программное обеспечение для проверки подлинности в «веб-группу». Если вы сделаете это, вы никогда не сможете попасть в «веб-маршрут», если только вы не прошли аутентификацию до того, как сделали это изменение. Вы удаляете возможность даже войти в систему, если вы это сделаете.