2013-09-24 2 views
2

Каждый раз, когда я войти в Joomla администратора я получаю следующее сообщение об ошибке:Joomla 3 Invalid Токен ошибка

The most recent request was denied because it contained an invalid security token. Please refresh the page and try again.

И единственный способ, которым я могу получить в раздел администрирования, чтобы вернуться на страницу или 2 и я Что может вызвать это действительно раздражающее поведение?

Я запускаю Joomla 3.1.5 с K2.

ответ

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; 
    } 

} 
+0

Спасибо ... Изменил наш вариант, чтобы перенаправить обратно на страницу входа и показать: «Срок действия вашей сессии истек». вместо неиспользуемого посетителя) «недопустимый токен» –

1

Это как если бы вы нажали дважды и представлен ваш Логин второй раз:

  • первый Войти успешна
  • второй потерпит неудачу (недействительный маркер)

но вы уже вошел в систему первым, чтобы вы могли использовать администратора.

Некоторые плагины могут вызвать это; и поскольку вы вошли в систему, я думаю, вы можете исключить кеш.

+0

Это происходит по многим причинам, одна из которых имеет открытую страницу входа в систему, а затем вход в систему на следующий день. Я бы предположил, что кеш браузера также может вызвать эту проблему. – Eoin

0

Просто нажмите назад кнопку в вашем браузере, а затем нажмите обновление!

+0

Спасибо за предложение, но это не является решением проблемы. В то время это был один из способов борьбы с ним, но я больше интересовался фиксацией в первопричине. – doovers

-1

Просто нажмите кнопку «Назад» в своем браузере, а затем нажмите «Обновить»! работал на меня!

+2

На самом деле это не решение, а скорее повторение того, что ОП обнаружил как раздражающее. – Rytis

1

У одного из наших клиентов-клиентов была эта проблема с его Joomla 3.3.X.

Вход для администратора загружен за долгое время, прежде чем выводить сообщение о недопустимой безопасности.

Я нажал Назад в свой браузер и смог войти в систему.

Я очистил все кеши, обновил до последней версии, сменил пароль, и проблема исчезла.

Не забудьте всегда использовать параметр «выход из системы», а не только закрыть браузер, когда вы хотите выйти из Joomla admin.

Я обновлю, если клиент вернется с той же ошибкой в ​​ближайшее время.

0

Просто отключите плагин tokenintercepter. Это будет работать.

+0

Благодарим вас за предложение, но это никак не отвечает на исходный вопрос ... В вопросе не упоминается плагин перехватчика токенов, только как решение проблемы. – doovers

0

Я просто удалил вызов индекса.php в конце URL-адреса

ie.

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

Теперь ... удалить index.php

и URL должен выглядеть

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

... который должен исправить это, и жаль, если он не сделал для вы, потому что это было для меня.

Смежные вопросы