Решение проблемы Invalid Token

Если вы читаете эту статью, то, скорее всего, вы столкнулись с проблемой при авторизации на своем сайте. При попытке войти в админку вам выдает сообщение - Invalid Token.Чаще всего ошибка возникает в том случае, если для сессии пользователя не может быть обнаружен объект user - происходит после переноса сайта с локали на сервер, или переезда на другой хостинг. Если простая чистка кеша сайта не помогает (удаление содержимого папки cache в корне сайта и в папке administrator), не помогает и попытка авторизироваться с www и без www в админке, то далее уже могут быть варианты.

Для  начала обновимся до последней версии - Joomla 1.5.24 (конечно, если же вы используете J! 1.5.x). В ранних версиях проблема доступа Invalid Token была распространенной, и решалась обновлением ядра. Маловероятно, что вы испльзуете столь уж древние версии, но, тем не менее, обновление не помешает в любом случае (если вы фанат хаков ядра - для начала делаем полный бекап сайта, если нет - тоже делаем, на всякий случай). Пробуем залогинится в админке. Если проблема не пропала - читаем дальше и, после каждого действия, проверяем авторизацию на предмет Invalid Token.

Заходим в phpMyAdmin (или другой интерфейс для управления базой данных), выбираем нашу базу и находим таблицуjos_plugins (вместо jos_ может быть другой префикс. Если в базе есть таблицы с разными префиксами, проверьте в конфигурации (configuration.php в корне сайта) строку var $dbprefix дабы выяснить какой префикс нам нужен.
Ищем строку "User – Joomla!" и убеждаемся в том, что плагин включен (в поле "published" значение 1 - включено, 0 - выключено).
Далее ищем плагин "Authentication – Joomla" - аналогично проверяем активность плагина.

Если плагины были включены, проверим также права доступа пользователя. Открываем таблицу jos_users и находим там нашего пользователя (SuperAdmin к примеру). В поле "id" должно быть значение 62. В поле "gid" - 25 или 26.
В таблице jos_core_acl_aro смотрим ячейку id для нашего пользователя - обычно id = 10.
В таблица jos_core_acl_groups_aro_map найдите строку для aro_id 10. Поле group_id должно быть 25 или 26

Находим таблицу jos_session и удалеям все записи. Не удалите по ошибке всю таблицу - нужно всего лишь очистить ее записи. Как правило, после вышеперечисленных действий навязчивый Invalid Token пропадает. 

Но не всегда. Иногда Invalid Token может возникнуть вследствие выставления неоправданно большого времени жизни сессии в общих настройках сайта. Для сброса времени жизни сессии необходимо открыть configuration.php и в переменной $lifetimeвыставить вменяемое время (в секундах).

Также проблема может возникать при использовании сторонних модулей авторизации, прежде всего убедитесь в том, что вы используете стандартный модуль mod_login