所以我有一个网站,你需要登录,一旦你通过身份验证,就会设置一个cookie,有一个唯一的会话变量(以及带有IP地址的强制性数据库插入,说他们已登录)我可以用来识别有关个人。
我希望能够准确识别谁在收听 icecast 音频流。
所以我正在使用连接过程来捕获谁在请求监听,Icecast 将向我传递 IP 地址、代理以及许多其他变量。 然后,它使用他们正在侦听的标志更新表,并在断开连接时标记他们侦听的时间量。
所以总结一下:
- 登录
- 将会话/IP 记录到数据库
- 进入网站/应用程序
- 播放流
- OnConnect - 添加代理和"流"标志(基于 ip)
- 断开连接 - 添加侦听时间(基于代理和 ip)
问题是,我可以让人们同时在多个设备(平板电脑/笔记本电脑)上收听(或者他们在几分钟内从一个切换到另一个),或者在同一 IP 上有多个登录(例如在防火墙后面)。
我真的不想使用传统意义上的基于 http 的身份验证(即 user:pass@domain.com),因为越来越多的浏览器正在逐步淘汰它。那么,我有哪些选择可以确切地了解谁是谁?
当前的脚本基于PHP,但是如果需要,我很乐意使用其他东西。
你说你已经有一个cookie,如果你确保它对你的Icecast服务器的URL也有效,那么你可以在你的URL身份验证中使用该cookie。
特别是在 URL 身份验证的 Icecast 文档中,有关标头和header_prefix的部分。只需确保将 cookie 标头转发到您的后端,你们都可以对它们进行身份验证并知道它们的身份。