2016-11-29 17 views
0

Formsというディレクトリがlaravelのpublicフォルダにあるとします。認証されたユーザーの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' => '.*']); 
関連する問題