Laravel:如何在不强制重定向的情况下查找用户是否已登录?

时间:2017-10-18 09:38:37

标签: php laravel authentication laravel-5 laravel-5.5

我刚刚发现Auth Facade只有在包含auth中间件的情况下才能工作。不幸的是,包括auth中间件会强制用户在没有登录的情况下进行重定向。这意味着路由只能用于登录用户,或者仅适用于未登录的用户。

我希望有一个页面,无论用户是否登录,都可以访问该页面,但如果用户对象显示,则会显示一些其他数据。我该怎么做?

看起来最简单的方法是创建两个路由,这两个路由都由相同的控制器方法支持。这是最好的方法吗?

编辑: 通过进一步的调查,我发现问题是默认的防护不是用户登录的那个,我能够获得登录的用户auth :: guard() - > user()代替of Auth :: user()。我无法全局更改默认防护,因此问题变为:有没有办法在每个路由的基础上设置默认防护?或者我需要在任何地方使用auth :: guard()吗?

2 个答案:

答案 0 :(得分:5)

在视图中使用git pull检查用户是否已登录

答案 1 :(得分:0)

您可以使用Auth :: check()

if($user = Auth::check())
{
    echo 'logged in';
}else{
echo 'not logged in';
}