限制仅对经过身份验证的用户的laravel公用文件夹中的目录的访问

时间:2016-11-29 09:50:48

标签: php laravel

假设我们在laravel的Forms文件夹中有一个public目录。

现在我想只有经过身份验证的用户才能访问该用户,并且如果未经授权的用户想要打开该目录或其中一个子目录(例如图像,视频等),则会显示错误消息。

我添加了这样的路由组,但无法正常工作:

Route::group(['prefix' => 'Forms', 'middleware' => 'auth'], function () {
      // what Can I do here ?  
});

我能为此做些什么?

1 个答案:

答案 0 :(得分:1)

我想说如果要隐藏用户的内容,则需要使用本地磁盘而不是公用文件夹。看看这里 https://laravel.com/docs/5.3/filesystem

如果你想限制目录,你可以使用通配符路径

代表

Route::get('/forms/{path?}', function () {
    if(!auth()->user()) {
        return 'unauthorized';
    }
    // if authenticated try to look for the file with requested path and return its content
    return File::get(public_path(ltrim($_SERVER['REQUEST_URI'],'/')));
})->where(['path' => '.*']);