Php Auth::check()未持久化Laravel 5.2

Php Auth::check()未持久化Laravel 5.2,php,laravel,authentication,laravel-5.2,Php,Laravel,Authentication,Laravel 5.2,我面临着拉威尔5.2的问题 public function authenticate() { $user = Auth::attempt(['email' => Input::get('email'), 'password' => Input::get('password')]); if (Auth::check()) { return redirect()->intended('default');

我面临着拉威尔5.2的问题

 public function authenticate()
    {
        $user = Auth::attempt(['email' => Input::get('email'), 'password' => Input::get('password')]);
        if (Auth::check()) {
            return redirect()->intended('default');
        } else {
            return 'wrong password or mail';
        }
    }
在authenticate()函数中,Auth::check()为true。但在我的自动中间件中,它返回false

public function handle($request, Closure $next, $guard = null)
{
    if (!Auth::check()) { //Here Auth::check() is false
        return redirect()->guest('auth/login');
    }
    return $next($request);
}
我不知道问题是什么,也不知道我做错了什么。。。 我尝试使用会话,但两个数据都无法持久


谢谢

我在Kernel.php中做了一些更改

原始代码

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
];
修改为

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
];

在中间件中使用
而不是
Auth::check()
使用
Auth::guard()


如果它不起作用,请告诉我。

如果您在Kernel.php中将中间件设置为
$middleware
,您应该尝试将其设置为
$middlewareGroups

请查看是否有帮助。我已经检查了这个,但它没有帮助…您的所有路由都需要在
web
中间件组中进行身份验证/会话吗?当我使用它时,我的路由无法正常工作:/
\illumb\Session\Middleware\StartSession::class,
其目的是在请求之间持久化会话。这是你最初的问题,我已经解决了<代码>\Illumb\View\Middleware\ShareErrorsFromSession::class,这样做的目的是显示由于验证而产生的错误消息。若你们有其他问题,那个么你们应该在新问题中问他们。
public function handle($request, Closure $next, $guard = null)
{
    if(Auth::guard($guard)->guest()) {
        return redirect()->guest('auth/login');
    }
    return $next($request);
}