Защита маршрутов в Laravel 5.3

#php #authentication #routes #laravel-5.3

#php #аутентификация #маршруты #laravel-5.3

Вопрос:

Я пытаюсь защитить свои маршруты в Laravel 5.3. Я использую приведенные ниже коды

 Route::get('profile', function () {
    // Only authenticated users may enter...
})->middleware('auth');
  

Если я попытаюсь перейти /profile в ситуацию выхода из системы, это перенаправит меня на /login маршрут. Но я хотел бы перенаправить его на / route.

Как я могу это сделать??

Ответ №1:

В laravel 5.3 это находится в каталоге исключений. Перейдите к AppExceptionsHandler.php и внизу измените код:

     return redirect()->guest('/');
  

Ответ №2:

изменить файл appMiddlewareRedirectIfAuthenticated.php

и отредактируйте эту строку:

 return redirect('/login');
  

Комментарии:

1. Спасибо @Marcin. В Laravel 5.3 такого файла нет. Вы можете увидеть это github.com/laravel/laravel/tree/master/app/Http/Middleware

2. Извините, тогда это перенаправление

Ответ №3:

 public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->check()) {
        return redirect('/');
    }

    return $next($request);
}
  

Пожалуйста, напишите эту функцию в этом файле appMiddlewareRedirectIfAuthenticated.php

Комментарии:

1. хотите создать новое промежуточное программное обеспечение??

2. Нет, я не создавал никакого промежуточного программного обеспечения. Спасибо

Ответ №4:

Вы можете попробовать

 Route::group(['middleware'=>'web'],function (){
Route::Auth();
Route::get('/home', 'HomeController@index');});
  

и изменить appMiddlewareRedirectIfAuthenticated.php

 public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->check()) {
        return redirect('/');
    }

    return $next($request);
}