如何在 HTML 5 中播放经过身份验证的音频流?
Posted
技术标签:
【中文标题】如何在 HTML 5 中播放经过身份验证的音频流?【英文标题】:How to play authenticated audio stream in HTML 5? 【发布时间】:2018-09-24 10:01:27 【问题描述】:我们有一个音频流 API,它采用 Basic Authentication
。验证成功后,它会返回带有"audio/mpeg"
MIME 的音频流。
我们之前在 html 中使用 <audio>
标记来播放音频文件,但现在通过身份验证,该标记不再起作用。 <audio>
标签规范不允许“身份验证”标头 See this *** thread.
如果<audio>
标签在这里没有帮助,那么在网络上通过身份验证播放音频的替代方法是什么?
【问题讨论】:
通常crossOrigin 属性是为此目的,您必须事先将授权保存在客户端的cookie中。但我不得不承认,我更习惯于属性的“匿名”而不是“使用凭据”…… @Kaiido 感谢您的回复,音频流 API 托管在同一台服务器上,而不是在不同的服务器上。但仅当请求标头具有“Authorization=Basic +token”时才可用,不幸的是,音频标签没有任何规定可以与 src URL 一起发送标头 【参考方案1】:在源标签中使用 URL 格式 https://username:password@example.com/your_stream,这会在“授权”标头中发送凭据。
【讨论】:
我怀疑这是一种不安全的做法,因为我们将用户名:密码放在 URL 中 :) 不推荐在 URL 中发送 SRC 属性的用户名和密码以上是关于如何在 HTML 5 中播放经过身份验证的音频流?的主要内容,如果未能解决你的问题,请参考以下文章