Я новичок в Laravel, и мое веб-приложение состоит из 3 типов пользователей (охранников): администраторы, агенты, игроки. Аутентификация работает нормально с администраторами и агентами, поскольку они не должны видеть свою панель управления, если они не вошли в систему.
Проблема с игроками, которые могут получить доступ ко всем страницам на веб-сайте как гости и когда они входят в систему, единственное изменение - в панели навигации.
Я получаю следующую ошибку:
Firefox обнаружил, что сервер перенаправляет запрос на этот адрес в способ, который никогда не завершится.
RouteServiceProvider. php
public const HOME = '/';
public const LOGGEDIN = '/loggedin';
public const AGENT = '/agent';
public const ADMIN = '/admin';
web. php
Route::group(['namespace' => 'Front','middleware' => 'guest:player', 'middleware' => 'auth:player'], function(){
Route::get('/','FrontController@index')-> name('front.home');
Route::get('loggedin','FrontController@index')-> name('front.loggedin');
Route::get('Page1','FrontController@get_page1')-> name('front.page1');
Route::get('Page2','FrontController@get_page2')-> name('front.page2');
Route::get('logout','FrontController@logout')-> name('front.logout');
});
Подтвердить. php
protected function redirectTo($request)
{
$current_req = request()->segment(count(request()->segments()));
if($current_req == 'admin'){
return route('admin.login');
}
elseif($current_req == 'agent'){
return route('agent.login');
}
elseif($current_req == ''){
return route('front.home');
}
else{
return route('front.home');
}
}}
RedirectIfAuthenticated. php
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
if($guard == 'agent')
return redirect(RouteServiceProvider::AGENT);
elseif($guard == 'admin')
return redirect(RouteServiceProvider::ADMIN);
elseif($guard == 'player'){
return redirect(RouteServiceProvider::LOGGEDIN);
}
else
return redirect(RouteServiceProvider::HOME);
}
return $next($request);
}