PHP: Android теряет информацию о сеансе и cookie при использовании встроенного видеопроигрывателя

После того, как я не нашел решение весь день, я даю ему попробовать здесь:

Сценарий: клиент может войти в систему и получить доступ к видеофайлам. Я предоставляю видео файлы с использованием псевдопотока PHP (запросы диапазона байтов). Видеофайлы находятся в защищенной папке.

Настроить:

  1. load.php предоставляет код для встраивания видео html5:

     <видео ...>
        <источник src = "videoprovider.php? secure = CODE" type = "video / webm">
     </ Видео>
    
  2. videoprovider.php получает код, который находит правильное видео и возвращает видео в байтах

Оба файла PHP проверяют, что клиент зарегистрирован. Для этого я использую modx в начале каждого файла с помощью:

require_once DOCUMENT_ROOT.'modx/includes/config.inc.php'; startCMSSession(); // does session_start() 

Затем я могу получить доступ к данным $ _SESSION, которые были установлены во время входа в систему.

Все работает отлично на рабочем столе, но не на устройствах Android. Устройства Android показывают только индикатор загрузки видео и застревают.

Я напечатал $ _SESSION и узнал, что, как только Android попытается воспроизвести видеофайл (несколько запросов байтов диапазона), первый запрос указывает, что существует $ _SESSION, второй запрос указывает, что больше нет $ _SESSION.

Я еще не мог отследить ошибку. Что такое проблема Android? Почему он может читать сеанс, а затем больше нет.

Некоторые примечания:

  • У меня есть все файлы, которые правильно связаны, а не 404, которые могут убить сеанс (по крайней мере, не в консоли веб-разработчика, не видят, что делает Android).

  • Вызов startCMSSession (); несколько раз для каждого запроса диапазона видео не должны изменять сеанс.

  • Он работает во всех настольных браузерах.

Обновить:

  • Я пытался использовать файлы cookie, но выяснил, что даже файлы cookie не передаются, поэтому, похоже, это не проблема, связанная с modx, а полная проблема с Android . Я обновил заголовок вопроса, соответственно, «Android теряет $ _SESSION, созданный MODx Evo?» к «PHP: Android теряет информацию о сеансе и Cookie при использовании встроенного видеопроигрывателя»
  • Это, вероятно, та же проблема: Android 2.3 не передает информацию cookie для html5 audio tag Получить запрос Цитата:

Проблема заключается в том, что браузер не отправляет запрос на аудиотег сам по себе, а вместо этого делегирует это на stagefright. Sadely Stagefright (на Android 2.3) не отправляет файлы cookie вообще …

  • Интересно: передают ли мобильные браузеры httpOnly-файлы cookie через аудио-тег HTML5?

Итак, как это решить? (Мое устройство для тестирования – Android 4).

Solutions Collecting From Web of "PHP: Android теряет информацию о сеансе и cookie при использовании встроенного видеопроигрывателя"