2016-11-29 68 views
0

假设我们在public文件夹中有Forms目录。限制访问laravel的公共文件夹中的目录仅供认证用户使用

而现在我只想验证用户可以访问,如果未经授权的用户想要打开该子目录或其子目录之一(如图像,视频等)显示的错误消息。

我加的路由组这样的,但不能正常工作:

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

我能为那怎么办?

+0

用户在“窗体”文件夹内会做什么? – scottevans93

+0

@ scottevans93,其他一些子目录包含我想要授权的用户可以访问的图像和视频 –

+0

您必须使用您的控制器为他们提供服务,否则直接的HTTP访问将不会受到您的Laravel Auth System – scottevans93

回答

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' => '.*']); 
相关问题