代码之家  ›  专栏  ›  技术社区  ›  user1985273

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

  •  0
  • user1985273  · 技术社区  · 7 年前

    因此,我设法产生了这样一种情况: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,但index方法仍然是错误的。

    1 回复  |  直到 7 年前
        1
  •  2
  •   ollieread    7 年前

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

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