Я работаю над реагирующим проектом laravel и пытаюсь защитить маршруты панели инструментов с помощью промежуточного программного обеспечения, вот код из промежуточного программного обеспечения
public function handle($request, Closure $next)
{
$apiToken = $request->bearerToken();
$isAuthenticated = User::where('api_token', $apiToken)
->where('is_admin', true)
->first();
if(!$isAuthenticated) {
return redirect('/');
}
return $next($request);
}
Теперь проблема заключается в пользователь не аутентифицирован, промежуточное ПО не перенаправляет на нужный маршрут, вместо этого он возвращает страницу html в виде текста в ответе следующим образом. Ответ в случае не аутентифицированного пользователя
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="theme-color" content="#000000"/>
<meta name="description" content="Web site created using create-react-app"/>
<link rel="stylesheet" href="http://localhost/css/app.css">
<title>Some Title Here</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script src="http://localhost/js/app.js"></script>
</body>
</html>
Я пытался использовать
return redirect()->route('/');
, но, к сожалению, он тоже не работает.
Я также пытался вызвать исключение 401 с помощью
abort(401)
И поймать его в обработчике исключений и перенаправить оттуда (как я сделал с исключениями 404 и 500, и я был перенаправлен успешно), но это не работает, и я получил то же ответное сообщение с отправленной страницей как текст в ответе, так что проблема, вероятно, с перенаправлением из промежуточного программного обеспечения, может кто-нибудь помочь мне найти проблему, пожалуйста?