2017-06-04 146 views
0

当Laravel引发404异常或任何类型的异常时,auth()帮助程序在这些页面中返回null,404,400 ...任何异常都有问题。Laravel auth()在404's上返回false

正如有人建议,我搬到2个中间件到globalgroup

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

然而,就引起了另一个问题,这是记录我出去每次我刷新页面,当我提出这些中间件回登录的用户留登录。

所以,现在,我仍然需要一种方法来使用auth(),在404页面中,没有任何意义的是当用户已经登录时,请在404页上登录请登录,这真的很糟糕Laravel 。

其实上面提到的解决方案很多,在代码中会导致很多问题,并且检测到已验证的用户,我只是做了一些测试,它在每次刷新时创建一个新的会话。

+0

是404页扔?那些404页面是自定义页面吗? – jycr753

+0

@ jycr753 404页是好的,我试图编辑处理程序和自定义/errors/404.blade.php文件,404不是问题,问题是,当我访问一个404页面,刀片内,我无法(),auth() - > user()返回false/null – Emad

+0

@Emad我只是再次检查,它的工作完美,没有会议得到清除像你说的。我第一次检查时也是如此。我必须与数据库会话相关。我最初测试的文件会话工作正常。 – Sandeesh

回答

0

问题是在我以前的相关的问题auth() method null on Exceptions

解决这些中间件应移动并没有复制到全局阵列。我在Web组和全局组中有多个实例,这是导致此问题的原因。

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

相关问题