Доступ к изображениям, требующим аутентификации в HTML

Я пытаюсь получить доступ к изображениям локально в файле HTML с сервера сборки, который требует аутентификации. Ниже приведен пример кода.

<html>
<head>
<title>Build Report</title>
</head>
<body>
<img width = "30%" src = "https://ci-system.net/project/build/build-1/image-1.png"/>
<img width = "30%" src = "https://ci-system.net/project/build/build-1/image-2.png"/>

</body>
</html>

Я уже вошел на сервер в том же сеансе браузера. Когда я открываю HTML-файл в том же сеансе браузера, каждый тег изображения пытается снова пройти аутентификацию на сервере аутентификации, и эти запросы выполняются без повторного ввода учетных данных. На изображении ниже я выделил два запроса на два изображения.

Но когда я напрямую ввожу URL-адрес изображения в браузере, повторная аутентификация не требуется, я предполагаю, что это из-за сеансовых файлов cookie с сервера сборки.

Почему файлы cookie сеанса с сервера сборки не используются повторно, когда я напрямую обращаюсь к этим изображениям из HTML-файла и пытаюсь выполнить повторную аутентификацию для каждого изображения отдельно?

Поскольку запросы GET не добавляют никаких дополнительных заголовков. Вы должны добавить токен входа в URL-адрес изображения или использовать для него какой-либо API.

Justinas 22.11.2022 09:30

@Justinas Можете ли вы опубликовать это как ответ, чтобы я мог его принять :)

Sirish 22.11.2022 12:06

Какой браузер вы используете? Какая версия этого браузера? Как он в настоящее время настроен в отношении сторонних файлов cookie?

Quentin 22.11.2022 12:26

@Quentin Я использую версию Firefox 103.0.1, и в отношении файлов cookie включена опция «Файлы cookie межсайтового отслеживания и изоляция других файлов cookie». Когда я меняю это только на «Cookie-файлы межсайтового отслеживания», он повторно использует существующие cookie-файлы сеанса.

Sirish 22.11.2022 13:54
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
4
88
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Поскольку запросы GET не добавляют никаких дополнительных заголовков. Вы должны добавить токен входа в URL-адрес изображения или использовать для него какой-либо API.

В запрос GET добавляется множество «дополнительных заголовков». И запрос, инициированный <img>, и запрос, инициированный пользователем «введите URL-адрес изображения напрямую в браузере», будут запросами GET.

Quentin 22.11.2022 12:21
Ответ принят как подходящий

Вы настроили свой браузер на «изолирование других межсайтовых файлов cookie», поэтому, когда вы открываете HTML-документ в другом источнике, он использует другую банку файлов cookie, которая не содержит файлы cookie вашего сеанса входа в систему.

Другие вопросы по теме