smartSessions

Расширенное управление сессиями MODX
Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
Alexey Naumov
Пакетов
9
Закачек
7 036
Автор дополнения
Пакетов
9
Закачек
7 036
Версия 1.2.0-pl
Дата выпуска 29.02.2024
Загрузки 333
Просмотры 5 285
Внимание, smartSessions создан для MODX 2 и не поддерживает MODX 3. Для MODX 3 существует похожее дополнение ExtSession.

Компонент smartSessions расширяет стандартный обработчик сессий modSessionHandler, добавляя следующую информацию к записям сессий:
  • user_agent
  • user_id — если пользователь авторизован
  • ip — ip адрес
  • is_bot — если user_agent принадлежит боту

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

Установка

1. Установите пакет из репозитория
2. В системной настойке session_handler_class поставьте значение smartSessionHandler
3. проверьте, что данные начали собираться в таблицу modx_smart_sessions. При этом таблица modx_sessions больше не используется, ее можно очистить.

Настройки

smartsessions_bot_signatures — список сигнатур поисковых ботов, разделенных вертикальной чертой, для поиска типа LIKE по полю user_agent. Добавьте сюда ботов, которые часто посещают ваш сайт.

smartsessions_bots_gc_maxlifetime — время жизни сессий ботов, указанных в настройке smartsessions_bot_signatures. Уменьшая его вы уменьшите срок хранения сессий ботов и сократите размер таблицы с сессиями.

smartsessions_empty_user_agent_gc_maxlifetime — время жизни сессий с пустым User-Agent. Как правило его можно сделать таким же как и для ботов.

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

Пример сценария настройки компонента:
session_gc_maxlifetime — стандартное значение 604800 (7 дней);
smartsessions_bots_gc_maxlifetime — 10800, сессии ботов хранятся 3 часа и занимают минимум места в базе;
smartsessions_empty_user_agent_gc_maxlifetime — 10800, сессии с пустым User-Agent хранятся 3 часа и занимают минимум места в базе;
smartsessions_authorized_users_gc_maxlifetime — 2592000, сессии авторизованных пользователей хранятся 30 суток.

Полезное

SQL запрос для просмотра количества сессий, сгруппированных по user_agent:
SELECT `user_agent`, COUNT(*) 
FROM `modx_smart_sessions` 
GROUP BY `user_agent` 
ORDER BY `COUNT(*)` DESC



Подробнее о компоненте modx.pro/components/22098

1.2.0-pl

  • Добавлен столбец is_bot в таблицу modx_smart_sessions
  • Оптимизация скорости работы
  • Возврат настройки session_handler_class на стандартное значение при удалении пакета

1.1.2-pl

  • Исправлен баг с сохранением сессий с длинным ip

1.1.1-pl

  • Добавлен en лексикон
  • Добавлено управление сессиями с пустым User-Agent
  • В настройку bot_signatures добавлены еще несколько сигнатур

1.0.5-pl

  • Исправлена ошибка создания сессий для пользователей с длинным (>255 символов) User Agent

1.0.4-pl

  • Исправлена критичная ошибка при удалении старых сессий

1.0.3-pl

  • Изменения в установщике. Удален резолвер, который мог при удалении компонента удалить системные файлы MODX.

1.0.2-pl

  • Исправлена опечатка в классе smartSessionHandler

1.0.1-pl

  • Отдельное управление сессиями авторизованных пользователей

1.0.0-rc

  • Отдельное управление сессиями ботов
  • Автоматическое создание класс smartSessionHandler в директории /core/model/modx/

1.0.0-beta

  • First release.
  • Added user id, user agent, ip

Последние обсуждения в сообществе MODX.pro