我在Laravel抛出404异常或任何异常时遇到问题,auth()帮助器在这些页面中返回null,404,400 ......任何异常。
正如有人建议的那样,我将2个中间件移到了全局组
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Session\Middleware\StartSession::class,
然而,它引起了另一个问题,它每次刷新页面时都会将我退出,当我将这些中间件移回登录后,用户仍然可以登录。
所以现在,我仍然需要一种方法来使用auth(),在404页面中,当使用已经登录时导航栏显示请登录404页面是没有意义的,这是非常糟糕的Laravel
实际上许多人提出的解决方案在代码中引起了很多问题,并且检测到经过身份验证的用户,我只是做了一些测试,每次刷新都会创建一个新的会话。
答案 0 :(得分:0)
问题已在我之前的相关问题auth() method null on Exceptions
中解决这些中间件应该移动而不是复制到全局数组。我在网络组和全局组上有多个实例,这导致了这个问题。
因此,将App/Http/Kernel.php
中的middlware从'web'组复制到'middlewares'组将在每次刷新时重新创建会话。我希望,有人会觉得这很有用。