2015-05-08 5 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] не найден. (View: 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'); 
    } 

Или и может проверить его в действии

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 (! Auth :: гость()) сделать это @else сделать @endif

Смежные вопросы