【问题标题】:Laravel 5.3: Use auth/middleware on custom error pageLaravel 5.3:在自定义错误页面上使用身份验证/中间件
【发布时间】:2017-05-21 21:12:49
【问题描述】:

问题

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

此行为已被多次报告,但未提供足够的答案。 hacky 解决方案是设置 StartSession 中间件以应用于每个请求,但在我的情况下这还不够。

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

不适合的解决方案

  • 我不想将StartSession 中间件(或任何其他)添加到每个请求中

相关问题和链接

【问题讨论】:

  • 很好的问题。很想知道它的结果。我刚刚检查了 GH 问题,看它是否以前被提出过,并注意到你在那里也添加了一个问题 - 祝你好运通过 GC ;)
  • 遇到同样的问题,还没找到好的解决方案。

标签: php laravel laravel-5 error-handling middleware


【解决方案1】:

与围绕我打开的github issue 的讨论一致,这里有两个最佳实践:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 2017-01-24
    相关资源
    最近更新 更多