Кажется, что этот вопрос получает много просмотров, поэтому вот решение, с которым я столкнулся, справляется с ошибками токена. Поскольку просмотр ошибки, скорее всего, ничего не значит для пользователя, я хотел зарегистрировать пользователя и перенаправить ошибки токена на домашнюю страницу. Единственный способ, которым я мог это достичь, был с плагином.
Кредит 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;
}
}
Спасибо ... Изменил наш вариант, чтобы перенаправить обратно на страницу входа и показать: «Срок действия вашей сессии истек». вместо неиспользуемого посетителя) «недопустимый токен» –