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

时间:2016-04-15 20:09:28

标签: laravel laravel-5 laravel-5.2

为了澄清这个问题,以下陈述是否相同,或者我是否遗漏了某些内容并引入了安全漏洞?

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

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

2 个答案:

答案 0 :(得分:1)

让我们快速浏览一下

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

正如您所看到的,所有检查都是检查null。如果你需要知道他们是否被授权,使用Auth::check()要容易得多。如果您不打算使用它,那么返回一个对象是没有意义的。

答案 1 :(得分:0)

语句Auth :: Check()只是在用户登录时返回。

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

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

您可以检索用户的数据。