每次登录joomla admin时都会出现以下错误:
最近的请求被拒绝,因为它包含无效 安全令牌。请刷新页面然后重试。
我可以进入管理部分的唯一方法是返回一个页面或2,然后我就进去。可能导致这种令人讨厌的行为的原因是什么?
我用K2运行Joomla 3.1.5。
答案 0 :(得分:3)
似乎这个问题得到了很多观点,所以这里是我提出的处理令牌错误的解决方案。由于看到错误可能对用户没有任何意义,我想将用户注销并将令牌错误重定向到主页。我能实现这一目标的唯一方法是使用插件。
感谢joomunited.com获取原始令牌拦截器插件here。
这是我的修改版本,其中包括用户注销和带有消息的主页重定向。希望这有帮助!
tokeninterceptor.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;
}
}
答案 1 :(得分:1)
就像您点击两次并再次提交登录信息一样:
但您已经在第一个登录,因此您可以使用管理员。
某些插件可能会导致这种情况;并且由于您已登录,我想您可以排除缓存。
答案 2 :(得分:1)
我们的托管客户之一与他的Joomla 3.3.X有这个问题。
在显示“无效安全”消息之前登录管理员很长时间。
我按下了我的浏览器并且能够登录。
我清除了所有缓存,升级到最新版本,更改了密码,问题就消失了。
当您想要退出Joomla管理员时,不要忘记始终使用“注销”选项,而不仅仅是关闭浏览器。
如果客户很快就会再次出现相同的错误,我会更新。
答案 3 :(得分:0)
只需在浏览器中按后退按钮,然后按刷新!
答案 4 :(得分:0)
只需禁用tokenintercepter插件即可。它会起作用。
答案 5 :(得分:0)
我刚刚删除了对url
末尾的index.php的调用即
http://www.wwf.org/english_site/administrator/index.php
现在......删除index.php
并且网址应该看起来像
http://www.wwf.org/english_site/administrator/
...应该修复它,如果它不适合你,请对不起,因为它对我有用。
答案 6 :(得分:-1)
只需在浏览器中按后退按钮,然后按刷新!为我工作!