Laravel - Auth :: check()返回false,但中间件auth不重定向

时间:2018-03-24 14:12:42

标签: php laravel laravel-5 laravel-5.4

所以不知怎的,我设法产生一种情况,其中Auth :: check()表示我没有登录,但中间件('auth')仍然允许访问我的类。我做的最后一件事是修改用户数据,但我没有注销,所以我假设Auth :: check()返回错误的值。但为什么会这样呢?我的控制器构造:

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

    $this->middleware('auth');

}

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

打印出“无索引”。所以Auth :: check()返回false,但索引方法仍然是raeched。

1 个答案:

答案 0 :(得分:2)

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

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