使用常规 Laravel Auth 保护目录

Protect a directory with regular Laravel Auth

我有一个辅助应用程序,它每天都会将新文件夹放入我的 Laravel 应用程序中。文件夹的内容需要可公开访问,因为它们是 flash 文件,每天的文件夹中都有大量资产,还有静态 .html 页面、.jpgs.swfs。这些链接是辅助应用程序的供应商编码框架的一部分。

使用 php 从无法通过 Web 访问的文件夹移动文件似乎不是一个好的选择。我试过使用 readfile() 并考虑过 .htaccess,但我不想让我的用户使用二次登录。

只有使用我的 Laravel 应用程序登录的用户才能访问这些文件。有什么方法可以使用 Laravel 的 Auth 系统(而不是基本身份验证)来保护对该文件夹内任何请求的访问?了解该文件夹内的页面请求会有所不同?

通过广泛的搜索,我发现 Laravel 无法处理 public 具有静态资产的文件夹的保护。这是一个网络服务器配置问题。

一种解决方案是设置一个由 Web 服务器读取的 cookie,如果 cookie 值与预定值不匹配,则退回用户。但是 Laravel 加密 cookie 并在每次加载时处理未加密的 cookie。因此,该解决方案仅在您使用 App::filter 使用 php setcookie() 处理 cookie 时才有效。