#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);
}