Я создаю приложение Laravel, которое после определенных шагов подключается к Графане. Я хочу, чтобы после нескольких шагов пользователи перенаправлялись на аутентифицированную страницу Grafana.
Я следовал за блогом raintank, чтобы настроить графическую аутентификацию прокси.
Но я не совсем понимаю, куда вставлять код для перенаправления внутри контроллера Laravel, чтобы я мог показать пользователям страницу аутентифицированной графической панели.
Основной localhost: 3000 работает, но я не могу понять, куда вставить X-WEBAUTH-USER и имя пользователя внутри контроллера или где их установить.
Будучи новичком в Laravel, я пытаюсь понять, с чего начать.
Невозможно перенаправить на страницу с установленными пользовательскими заголовками, независимо от того, какой язык или рамки вы используете.
Другими словами, нет способа вызвать перенаправление HTTP и заставить клиента (браузер) добавить пользовательский заголовок. Вы можете подумать, что этот код должен работать просто отлично:
return redirect()->away('http://localhost:3000', 302, ['X-WEBAUTH-USER', 'username']);
Но это не так. Вы устанавливаете пользовательские заголовки для ответа, который инструктирует браузер перенаправлять, а не для самого перенаправления.
Единственный способ для сайта дать указание браузеру выполнить HTTP-запрос с настраиваемым заголовком — это использовать Javascript и XMLHttpRequest
объект. И для реализации таких запросов AJAX необходимо реализовать CORS на целевом сервере.
Обратите внимание, что страница не может устанавливать заголовки HTTP-запроса, если она не выполняет асинхронный запрос с использованием XMLHttpRequest. Это означает, что вы не можете сделать такое перенаправление с пользовательским заголовком на стороне клиента.
Самое близкое, что вы можете придумать, — это действовать как прокси-сервер. Сделайте запрос на второй URL-адрес самостоятельно и затем верните ответ клиенту вместо перенаправления.
Вы наверняка что-то упускаете из-за этой прокси-аутентификации Grafana. Я уверен, что это не так, как это работает. Я видел, что в учебнике настраивается Apache в качестве прокси-сервера, вы можете пойти по этому пути. Я думаю, что вы должны перечитать это более внимательно.
Других решений пока нет …