Решение, которое я использовал, заключалось в том, чтобы перехватывать запросы браузера XHR (используя пакет xhook npm) и устанавливать заголовки программно. Ниже приведен простой пример:
я есть бэкэнд API (с помощью Express), который обрабатывает файл потокового видео M3U8.
http://localhost:3000/api/stream.m3u8
Эта конечная точка будет работать только с соответствующим пользователемtoken
.
маршрутизатор
router.get('/api/stream.m3u8', controller.stream);
контроллер
exports.stream = function(req, res) {
var token = ''; // ? not sure how to get access to a sent up token
if (!token) res.status(401).json('Not authorized');
// if token is valid, proceed
};
На переднем конце я использую videojs.
var player = videojs('my-player', {})
// set source to my backend api m3u8 file
player.src({
src: 'http://localhost:3000/api/stream.m3u8',
type: 'application/x-mpegURL'
});
Есть ли способ добавить пользовательский заголовок в плагин videojs для отправки данных в мой бэкэнд?