Я пытаюсь получить доступ к изображениям локально в файле 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-файла и пытаюсь выполнить повторную аутентификацию для каждого изображения отдельно?
@Justinas Можете ли вы опубликовать это как ответ, чтобы я мог его принять :)
Какой браузер вы используете? Какая версия этого браузера? Как он в настоящее время настроен в отношении сторонних файлов cookie?
@Quentin Я использую версию Firefox 103.0.1, и в отношении файлов cookie включена опция «Файлы cookie межсайтового отслеживания и изоляция других файлов cookie». Когда я меняю это только на «Cookie-файлы межсайтового отслеживания», он повторно использует существующие cookie-файлы сеанса.






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