2016-03-17 80 views
0

我在public laravel文件夾中有一個名爲fileManager的目錄。現在我想通過中間件來控制訪問權限因此,無簽名或未登錄的用戶無法直接訪問它。爲公共laravel文件夾中的目錄定義路由

默認情況下,任何用戶都可以在瀏覽器中鍵入目錄名稱並導航到該目錄。 我希望能夠像這樣定義,可以申請和認證中間件路線:

Route::get('/fileManager', ['middleware' => 'auth', function() { 
    // 
}]); 

這不僅是的,我有公共文件夾中的許多目錄,也許我想控制用戶訪問這些。

我該怎麼做?

+0

我想你應該將這些目錄移動到'storage'目錄,並根據請求發送響應。 https://laravel.com/docs/5.2/filesystem。我不認爲你可以限制在公共文件夾的訪問。 – nextt1

回答

0

對於創建中間件在文件中創建類

應用程序/ HTTP /中間件

後創建

在陣列添加到您的kernel.php類

protected $routeMiddleware = [ 
      'auth' => \App\Http\Middleware\Authenticate::class, 
      'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 
      'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 
      'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 

      'newMiddleware' => pahttoclass 
     ]; 
+0

我的問題不在於定義中間件 –

0

有許多方法來做到這一點Laravel。你可以選擇你喜歡的任何人。但我總是在每個controller中使用__construct()方法。只需將此塊寫入控制器即可。

public function __construct() 
{ 
    $this->middleware('auth'); 
} 

這將保護所有methods只有在這種controller從未經授權的用戶。

+0

我的問題不在於定義中間件 –

相關問題