我試圖使用內置laravel 5.2的認證系統。如果我使用Auth :: check()替換return語句,則登錄似乎正常工作,它將返回true。但是當我重定向到'/'時,Auth :: check()在我的Auth中間件中突然返回false。Laravel 5.2,auth :: check在登錄後返回true,但在重定向後返回false
會話創建方法:
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");
}
驗證中間件:
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', '[email protected]');
Route::get('/logout', '[email protected]');
Route::get('/login', function() {
return view('login');
});
Route::group(['middleware' => ['web', 'auth']], function(){
Route::get('/', '[email protected]');
});
您使用哪個會話驅動程序? – phaberest
文件,但我也嘗試過Cookie – bim
您在這些路線上使用了web和auth中間件嗎? – Ohgodwhy