繁体   English   中英

Wordpress - 检查当前浏览器是否从外部服务器登录到 Wordpress 站点

[英]Wordpress - check if current browser is logged in to a Wordpress site from an external server

TLDR:我可以在服务器上安装一个脚本来检查当前的网络浏览器是否登录到特定的 Wordpress 站点吗?

长版:我试图在从 Icecast 服务器流式传输的 Wordpress 网站上设置音频播放器。 Icecast 服务器设置为“http”身份验证,当它收到文件请求时,它会向外部服务器发送请求以做出是/否决定 - 将“ok”标头发送回如果一切正常,服务器将允许来自 Wordpress 网站的原始请求。

对于最终用户来说,这一切都发生在由用户/密码保护的 Wordpress 站点上,所以我真正想要发生的是 Wordpress 站点从 Icecast 服务器请求文件,然后服务器将请求发送回自定义。 php 在 Wordpress 站点上,然后检查用户的浏览器在我的 Wordpress 站点中是否有当前登录的会话。 如果是,则将“ok”标头发送回以完成循环。

我已经让标题工作了,但没有检查登录的 Wordpress 会话。 我相信这是因为它的“会话”来自(单独的)服务器而不是客户端的浏览器。

我把自己绑在绳子上!

Icecast 挂载点 XML:

<mount-name>/stream99.aac</mount-name>
    <authentication type="url">
        <option name="listener_add" value="https://myserver.com/listener_joined.php"/>
        <option name="username" value="user"/>
        <option name="password" value="pass"/>
        <option name="auth_header" value="icecast-auth-user: 1"/>
        <option name="timelimit_header" value="icecast-auth-timelimit:"/>
        <option name="headers" value="x-pragma,x-token"/>
        <option name="header_prefix" value="ClientHeader."/>
    </authentication>
</mount>

工作“listener_joined.php”:

<?php
        header('icecast-auth-user: 1');
?>

我已经尝试了很多在此处找到的 Wordpress 的 is_user_logged_in() 组合,但都没有奏效。 我相信这是因为它是Icecast 服务器轮询信息(即未登录)。

希望有人可以提供帮助 - 非常感谢!

请改用查询字符串参数。

https://icecast.example.com/stream?sessionid=abcdef1234567890

这样,您不必担心标题,也不必担心跨域 cookie。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM