Я являюсь абсолютным новичком в системе Laravel. Я имею дело с проблемой промежуточного программного обеспечения.Laravel 5.0 :: Ошибка промежуточного ПО (ошибка ERR_TOO_MANY_REDIRECTS)
С помощью функции authenticate.php и __construct в AdminController.php, приведенной ниже, я не могу войти в систему и иметь дело с ошибкой ERR_TOO_MANY_REDIRECTS.
Неужели кто-нибудь сталкивался с такой проблемой? Если у вас есть, могу ли я дать какой-либо совет для решения этой проблемы?
Английский не мой первый язык, так что если это сообщение не имеет смысла или вам нужна дополнительная информация, оставьте свои комментарии! Любой совет будет оценен! Заранее спасибо!
Authenticate.php
public function handle($request, Closure $next){
if ($this->auth->guest()) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
}
else {
return redirect()->guest('auth/login');
}
}
if ($this->whoIsLoggedIn() == 'instructor'){
return redirect('/instructor/home');
} elseif ($this->whoIsLoggedIn() == 'admin') {
return redirect('/admin/home');
} elseif ($this->whoIsLoggedIn() == 'student') {
return redirect('/student/home');
} elseif($this->whoIsLoggedIn() == 'unknown'){
return redirect('/auth/login');
}
return $next($request);
}
public function whoIsLoggedIn(){
$identity = '';
foreach (\Auth::user()->roles as $role) {
if ($role->name == 'admin') {
return $identity = 'admin';
} else if ($role->name == 'instructor') {
return $identity = 'instructor';
} else if ($role->name == 'student'){
return $identity = 'student';
} else {
return $identity = 'unknown';
}
}
}
AdminController.php
public function __construct(){
$this->middleware('auth');
}
Большое спасибо за ваш комментарий, Денис. Но я должен извиниться, потому что у authenticate.php уже был return $ next ($ request); после условия переадресации ... Мне не удалось скопировать весь код в файл php ... – ILoveBaymax
Не имеет значения, если в любом случае не будет достигнуто - ваши аутентифицированные пользователи будут всегда перенаправляться снова и снова. Эта логика перенаправления должна произойти только один раз - после входа в систему –
После просмотра вашего совета я отредактировал код, который наследует AuthController, а затем все работает так, как я этого хочу. Большое спасибо Денису! – ILoveBaymax