У меня есть основная серверная часть .net, у которой есть конечная точка REST api для загрузки загруженных файлов mp3. Мне нравится функция аудиоэлементов, когда она начинает воспроизводиться, как только набирает достаточно данных, поэтому я не хочу загружать весь файл отдельно. Мой фронт выполнен с помощью Angular 5. Моя другая конечная точка API использует аутентификацию токена JWT, потому что я могу вручную установить JWT в заголовок, но когда я использую аудио-элемент, сам аудиоэлемент вызывает API-вызов, и я не могу добавить заголовок в запрос.
<audio height = "40" id = "audio1" preload = "auto" style = "visibility: hidden" type = "audio/mpeg" src = "api/audio/2269" >
</audio>
Это хорошо работает, когда я использую аутентификацию файлов cookie, когда я обслуживаю свой интерфейс из того же источника, что и мой REST API. Но теперь я планирую перенести интерфейс в другое облако, и тогда я понял, что каким-то образом куки работают только в том же домене. Я проверяю, что я даже не получаю cookie из другого домена в свой браузер.
Итак, мой вопрос: могу ли я каким-то образом аутентифицировать пользователя с помощью токена JWT при использовании аудиоэлемента html? Или я могу настроить аутентификацию cookie в .net Core 2 как-то, чтобы разрешить разные домены. Я нашел этот Cookie.Domain здесь, но не уверен, что он с ним работает.
Вот моя текущая конфигурация файлов cookie в ядре .net.
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>
{
options.Cookie.Name = "access_token";
options.LoginPath = "/login";
options.LogoutPath = "/login";
})
.AddJwtBearer(options =>
{
options.TokenValidationParameters = tokenValidationParameters;
});





Итак, я обнаружил свою проблему, и именно настройки Azure CORS испортили мои настройки CORS в ядре .net. Я удалил их в Azure, а затем получил правильные настройки CORS ядра .net. Вот мой второй вопрос: Как настроить ядро .net для отправки файлов cookie аутентификации в другой домен