Laravel - Auth::check() 返回 false,但中间件身份验证未重定向

Laravel - Auth::check() returning false, but middleware auth not redirecting

所以我设法以某种方式制造了一种情况,其中 Auth::check() 说我没有登录,但是中间件 ('auth') 仍然允许访问我的 class.我做的最后一件事是修改用户数据,但我没有注销,所以我假设 Auth::check() 是 returning 错误的值。但为什么会这样呢?我的控制器构造:

public function __construct()
{
    if(Auth::check()){
        print "yes";
    } else {
        print "no";
    };

    $this->middleware('auth');

}

public function index()
{
   print " index";
}

这会打印出 "no index"。所以 Auth::check() return false,但是 index 方法仍然是 raeched。

在中间件之前调用构造函数。 Laravel 允许您提供控制器中间件,因此您可以从控制器构造函数中推送到中间件堆栈。

控制器构造函数中任何形式的会话交互都会失败。