如果 Auth::user() 检索已经过身份验证的用户或 null,为什么要使用 Auth::check()



只是为了澄清这个问题,以下陈述是等效的,还是我遗漏了一些东西并引入了安全漏洞?

// 1
if(Auth::user()){
    // do something
}
// 2
if(Auth::check() && Auth::user()){
    // do something
}

让我们快速浏览一下引擎盖下

public function check()
{
    return ! is_null($this->user());
}

如您所见,检查所做的只是检查 null。当您需要知道它们是否经过身份验证时,使用 Auth::check() 要容易得多。如果您不打算使用它,则返回对象是没有意义的。

语句Auth::Check((只是返回用户是否登录。

Auth::user(( 返回已登录的用户(如果有(。

$user_name = Auth::user()->name;

您可以检索用户的数据。

最新更新