Laravel 5.3:在自定义错误页面上使用 auth/middleware

Laravel 5.3: Use auth/middleware on custom error page

问题

在显示 HTTP 错误页面(404、500 等)时,我想保留当前项目的标准设计,包括页眉和页脚。我的项目还包括一个注册系统。当用户登录并收到错误消息时,他将被重定向到相应的错误页面,但Laravel 不识别用户已登录。那是因为自定义错误页面(位于 resources/views/errors/{code}.blade.php 不 运行 通过正常的网络中间件(出于某些原因)。

此行为已被报告过几次,但没有提供足够的答案。 hacky 解决方案 是将 StartSession 中间件设置为应用于每个请求,但这对我来说还不够。

如何在自定义错误页面上使用 Auth/Session 中间件?

不适合的解决方案

相关问题和链接

为了与我打开的 github issue 相关的讨论保持一致,这里有两个最佳实践:

  1. StartSession 中间件添加到全局中间件列表是一个很好的做法,只要您的应用没有 API 或类似的
  2. 在第二种情况下,您可以使用 jQuery 和 AJAX 调用查询受会话影响的所需前端元素(例如 login/register 或配置文件按钮)。因此,您正在调用应用中间件的路由,并因此获得正确的元素。在我链接的 GitHub 问题中可以找到一个很好的例子。