2015-05-08 235 views
4

我是Laravel 5的新手,並試圖瞭解它的Auth進程。我想阻止用戶訪問我的頁面,除非用戶未登錄。嘗試使用Route:filter,但它不起作用。我做錯了什麼?Laravel 5檢查用戶是否登錄

Route::filter('/pages/mainpage', function() 
{ 
    if(!Auth::check()) 
    { 
     return Redirect::action('[email protected]'); 
    } 
}); 

回答

12

您應該使用auth middleware。在你的路線只需添加這樣的:

Route::get('pages/mainpage', ['middleware' => 'auth', 'uses' => '[email protected]']); 

或者在你的控制器構造函數:

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

獲取錯誤查看[app]未找到。 (查看:C:\ xampp \ htdocs \ AutoQlik \ resources \ views \ auth \ login.blade.php) – Tartar

+1

然後您必須創建該視圖或更改'app/Http/Middleware/Authenticate.php中的重定向「 – lukasgeiter

+0

知道了謝謝 ! – Tartar

2

如果你想驗證的中間件單一路線,然後

// Single route 

Route::get("/awesome/sauce", "[email protected]", ['middleware' => 'auth']); 

,如果你想權威性middlesware然後使用:

// Route group 

Route::group(['middleware' => 'auth'], function() { 
// lots of routes that require auth middleware 
}); 
1

U可以使用midlleware在colntroller

在控制所有的操作都需要在

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

要記錄或U可以在行動中檢查

public function create() 
    { 
     if (Auth::user()) { // Check is user logged in 
      $example= "example"; 
      return View('novosti.create')->with('example', $example); 

     } else { 
      return "U cant access here!"; 
     } 
    } 

也ü可以使用它在路線

Route::get('example/index', ['middleware' => 'auth', 'uses' => '[email protected]']); 
1

您可以直接在您的刀片代碼通過這種方式

@if做到這一點( !驗證::客()) 做到這一點 @else 做 @endif