2

每次我登录 joomla admin 时都会收到以下错误:

最近的请求被拒绝,因为它包含无效的安全令牌。请刷新页面并重试。

我可以进入管理部分的唯一方法是返回一页或 2 页然后我就进去了。什么可能导致这种非常烦人的行为?

我正在使用 K2 运行 Joomla 3.1.5。

4

7 回答 7

3

似乎这个问题得到了很多关注,所以这是我想出的处理令牌错误的解决方案。由于看到错误可能对用户没有任何意义,我想注销用户并将令牌错误重定向到主页。我能做到这一点的唯一方法是使用插件。

归功于 joomunited.com 的原始令牌拦截器插件,可以在此处找到。

这是我的修改版本,其中包括用户注销和重定向到主页的消息。希望这可以帮助!

令牌拦截器.php:

class PlgSystemTokeninterceptor extends JPlugin
{

    public function __construct(&$subject, $config = array())
    {
        parent::__construct($subject, $config);
        $app = JFactory::getApplication();

        if (($app->isSite() && $this->params->get('use_frontend')) || ($app->isAdmin() && $this->params->get('use_backend'))) 
        {
            register_shutdown_function(array($this,'redirectToHome'));
        }

    }

    public function redirectToHome()
    {
        $content = ob_get_contents();

        if($content == JText::_('JINVALID_TOKEN') || $content == 'Invalid Token')
        {
            $app = JFactory::getApplication();

            if (!JFactory::getUser()->guest)
            {
                $app->logout();
            }

            $app->redirect(JURI::base().'index.php?invalid_token=true');

            return false;   
        }
    }

    function onAfterInitialise()
    {
        $app = JFactory::getApplication();
        $invalid_token = $app->input->get('invalid_token', 'false');

        if ($invalid_token == 'true')
        {
            $app->enqueueMessage(JText::_('JINVALID_TOKEN'), 'warning');
        }

        return true;
    }

}
于 2014-02-27T08:39:19.360 回答
1

就好像您单击了两次并再次提交了登录信息:

  • 第一次登录成功
  • 第二个将失败(无效令牌)

但是您已经先登录了,因此您可以使用管理员。

一些插件可能会导致这种情况;并且由于您已登录,我想您可以排除缓存。

于 2013-09-24T08:08:00.670 回答
1

我们的一位托管客户在他的 Joomla 3.3.X 中遇到了这个问题。

在显示“无效安全”消息之前,登录到管理员加载了很长时间。

我在浏览器上按了返回并能够登录。

我清除了所有缓存,升级到最新版本,更改了密码,问题就消失了。

当您想退出 Joomla 管理员时,不要忘记始终使用“注销”选项,而不仅仅是关闭浏览器。

如果客户很快再次返回相同的错误,我会更新。

于 2014-10-09T00:05:32.750 回答
0

只需在浏览器中按后退按钮,然后按刷新

于 2014-08-06T16:20:45.180 回答
0

只需禁用 tokenintercepter 插件。它会起作用的。

于 2014-12-03T11:32:30.103 回答
0

我刚刚删除了对 url 末尾的 index.php 的调用

IE。

http://www.wwf.org/english_site/administrator/index.php

现在……删除 index.php

并且网址应该看起来像

http://www.wwf.org/english_site/administrator/

...这应该可以解决它,如果它不适合你,我很抱歉,因为它适合我。

于 2015-01-27T02:36:21.943 回答
-1

只需按浏览器中的后退按钮,然后按刷新!为我工作!

于 2014-09-12T11:00:01.483 回答