Laravel auth()在404&#39上返回false

时间:2017-06-04 18:53:56

标签: php laravel session laravel-5 laravel-5.4

我在Laravel抛出404异常或任何异常时遇到问题,auth()帮助器在这些页面中返回null,404,400 ......任何异常。

正如有人建议的那样,我将2个中间件移到了全局组

 \App\Http\Middleware\EncryptCookies::class,
 \Illuminate\Session\Middleware\StartSession::class,

然而,它引起了另一个问题,它每次刷新页面时都会将我退出,当我将这些中间件移回登录后,用户仍然可以登录。

所以现在,我仍然需要一种方法来使用auth(),在404页面中,当使用已经登录时导航栏显示请登录404页面是没有意义的,这是非常糟糕的Laravel

实际上许多人提出的解决方案在代码中引起了很多问题,并且检测到经过身份验证的用户,我只是做了一些测试,每次刷新都会创建一个新的会话。

1 个答案:

答案 0 :(得分:0)

问题已在我之前的相关问题auth() method null on Exceptions

中解决

这些中间件应该移动而不是复制到全局数组。我在网络组和全局组上有多个实例,这导致了这个问题。

因此,将App/Http/Kernel.php中的middlware从'web'组复制到'middlewares'组将在每次刷新时重新创建会话。我希望,有人会觉得这很有用。