Видеокурс Laravel: создание ToDo List
Создание фильтров для маршрутов
Создаем фильтр-проверку для адреса /todo - на данный URL требуется запретить вход для незалогиненного пользователя.
И при подобной попытке надо перебрасывать на страницу авторизации.
Для этого для маршрута todo добавляем фильтр:
Route::get('/todo', [ 'as' => 'todo', 'uses' => 'TodoController@index' ])->before('auth');Так же в файле filter.php меняем путь для редиректа на нужный нам
Route::filter('auth', function() { if (Auth::guest()) { if (Request::ajax()) { return Response::make('Unauthorized', 401); } else { return Redirect::guest('/todo/login'); } } });Если пользователь залогинен, то требуется сделать так чтобы при попытке зайти на страницу авторизации его перебрасывало на главную страницу приложния.
Route::get('/todo/login', [ 'as' => 'user-login', 'uses' => 'AuthController@getLogin' ])->before('guest');И для фильтра guest меняем редирект на нужный нам
Route::filter('guest', function() { if (Auth::check()) return Redirect::to('todo'); });
Для защиты от cross-site атак добавим фильтры для всех роутов обслуживающих формы (POST и GET запросы).
Route::post('/todo/login', [ 'uses' => 'AuthController@postLogin' ])->before('csrf');