Настройка авторизации файлов Mp3 для потоковой передачи - PullRequest
0 голосов
/ 26 апреля 2018

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

Моей первой мыслью было настроить поддомен и использовать базовую аутентификацию, чтобы я мог передать учетные данные в URL, но оказалось, что это не работает в chrome, и для пользователя, запрашивающего учетные данные, появляется сообщение об аутентификации.

С тех пор я пробовал несколько методов, таких как проксирование запроса через php или потоковое аудио для php, но я не могу заставить его работать. Независимо от того, какое руководство или учебник я нашел по этой теме, у меня остается сообщение из браузера, в котором говорится, что тип mime недействителен. Я пытался поиграть с заголовками ответов и настройками скриптов или библиотек, которые я нашел, но я немного растерялся.

Любые предложения о том, как этого добиться, были бы великолепны.

1 Ответ

0 голосов
/ 27 апреля 2018

Есть два основных способа справиться с этим. Оба имеют много конкретных реализаций.

Способ 1. Проверка учетных данных для каждого запроса медиа-файла

Это идентично обработке любого другого запроса к вашему приложению. Как бы вы ни выполняли авторизацию при входе, обрабатывайте ваши MP3 точно так же.

Способ 2: предварительная подпись URL

Это доступный вариант, если вы используете CDN. Ваше приложение генерирует URL-адреса и подписывает их хэшем основных частей URL-адреса и секретом. CDN знает (или может проверять иным образом), что URL был подписан с использованием авторизованного секрета, и не нуждается в повторной проверке. Это эффективно и обеспечивает правильное разделение обязанностей между системами. В качестве бонуса, эти URL могут быть настроены на работу только в течение нескольких минут. Это похоже на создание пароля для каждого отдельного файла, который работает только для одного человека (в идеале) и только в течение короткого периода времени, прежде чем автоматически перейти к новому паролю. Ваше приложение эффективно выдает этот пароль (подпись) каждый раз, когда генерирует URL.

...