为什么Wordpress的心跳登录不刷新随机数?

时间:2014-07-29 作者:NoBugs

这里有一个有趣的实验:转到wordpress插件列表页面,注意激活、停用链接在请求中都有一个nonce部分。

在第二个选项卡中,注销站点,然后返回插件列表页面。

过了一会儿,页面意识到它没有登录,并弹出一个登录屏幕。登录,然后单击“激活”或“停用”按钮。

请注意,它会给出nonce failure消息,“是否确实要执行此操作”?因为前一个会话的nonce不起作用。为什么Wordpress不知道刷新这些nonce?我原以为新的nonces会作为心跳ajax发送回来,但在登录屏幕上似乎没有ajax请求。

更新:这似乎是在用户登录时调用的,但我想没有太多的脚本能够聪明地处理这个触发器?

$( document ).on( \'heartbeat-tick.wp-auth-check\', function( e, data ) {
        if ( \'wp-auth-check\' in data ) {
            schedule();
            if ( ! data[\'wp-auth-check\'] && wrap.hasClass(\'hidden\') ) {
                show();
            } else if ( data[\'wp-auth-check\'] && ! wrap.hasClass(\'hidden\') ) {
                hide();
            }
        }
    }).

1 个回复
SO网友:Mark Kaplun

因为心跳系统主要与wordpress的其余部分正交,因此它并不真正知道它运行的页面的内容是什么。由于这是一个相对较新的系统,它的边缘可能没有得到很好的定义或测试,如果你认为有一些奇怪的行为或实际的bug,请在wordpress trac打开一张罚单-https://core.trac.wordpress.org/

结束