У меня есть приложение vue, которое находится за брандмауэром, который контролирует аутентификацию пользователя. Единственный способ определить, когда пользователю необходимо пройти повторную аутентификацию, - это когда запросы ax ios, отправленные моим приложением, получают ошибку 403. Когда это происходит, сервер также возвращает веб-страницу, которую я вижу как error.response.data
. На этой странице пользователь просит выполнить повторную аутентификацию с помощью встроенной формы, которая после завершения аутентифицирует пользователя и отправляет обратно результаты исходного запроса моего приложения.
У меня есть вопросы, как мне заставить пользователя повторно аутентифицировать, а затем захватить данные из моего запроса, который возвращается? Я могу отправить пользователю страницу аутентификации, например, используя:
var login_window = window.open('about:blank', '_blank');
login_window.document.write(error.response.data)
login_window.focus()
, но тогда я не вижу, как определить, когда пользователь прошел аутентификацию. Когда это происходит, login_window.document.body.innerText
содержит данные json из запроса моего приложения, которые нужны моим приложениям, но которые я не хочу показывать пользователю. Делая это «вручную», мне также не удалось извлечь json из login_window.document.body.innerText
, поскольку структура json была удалена, и теперь она выглядит примерно так:
JSON
Raw Data
Headers
Save
Copy
Collapse All
Expand All
status \"OK\"
message \"\"
user \"andrew\"
This вопрос пытается уменьшить мой предыдущий вопрос до проблемы javascript. Может быть лучший способ сделать то, что я хочу, используя axios
; см. Обработка страницы аутентификации, возвращенной запросом ax ios в vue для получения дополнительной информации.