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

Php Laravel:如何在不强制重定向的情况下查找用户是否已登录?,php,laravel,authentication,laravel-5,laravel-5.5,Php,Laravel,Authentication,Laravel 5,Laravel 5.5,我刚刚发现,只有包含Auth中间件,Auth facade才能工作。不幸的是,如果用户未登录,包括身份验证中间件将强制用户重定向。这意味着路由要么只对登录用户有效,要么只对未登录用户有效 我希望有一个单独的页面,无论用户是否登录,都可以访问该页面,但如果用户登录,则显示来自用户对象的一些附加数据。我该怎么做 看起来最简单的方法是创建两条路由,这两条路由都由相同的控制器方法支持。这是最好的方法吗 编辑: 通过进一步调查,我发现问题在于默认的保护不是用户登录时使用的保护,并且我能够获得登录的用户au

我刚刚发现,只有包含Auth中间件,Auth facade才能工作。不幸的是,如果用户未登录,包括身份验证中间件将强制用户重定向。这意味着路由要么只对登录用户有效,要么只对未登录用户有效

我希望有一个单独的页面,无论用户是否登录,都可以访问该页面,但如果用户登录,则显示来自用户对象的一些附加数据。我该怎么做

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

编辑: 通过进一步调查,我发现问题在于默认的保护不是用户登录时使用的保护,并且我能够获得登录的用户auth auth::guard()->user(),而不是auth::user()。我无法全局更改默认防护,因此问题变成:是否有一种方法可以在每条路由的基础上设置默认防护?或者我需要到处使用auth::guard()吗?

在您的视图中使用
auth::check()
检查用户是否登录

在您的视图中使用
auth::check()
检查用户是否登录

您可以使用auth::check()

您可以使用Auth::check()


Auth::check()即使用户已登录也返回false如果您未使用默认的laravel用户类登录,是否有自定义登录实现?
Auth::check()
应返回true/false Auth::check返回false,Auth::user返回null,除非我包括auth中间件-然后检查和用户返回值Sauth::check()返回false,即使用户已登录您未使用默认的laravel用户类登录您是否有自定义登录实现?
auth::check()
应返回true/false auth::check返回false,auth::user返回null,除非我包括身份验证中间件,否则检查和用户返回值sauth::check即使用户登录也返回false即使用户登录也返回false
if($user = Auth::check())
{
    echo 'logged in';
}else{
    echo 'not logged in';
}