Проблема logout
Добрый день/вечер/ночь!
На одном из сайтов столкнулся с проблемой: после выхода пользователя (через компонент Office или просто через процессор) сессия данного пользователя сохраняется в неизменном виде. Т.е., например, членство в группе:
Выбить эту информацию в ДАННОМ браузере не удаётся больше никак (очистка кэша, перезагрузка прав, завершение сеансов, чистка куки).
Соответственно, в другом браузере при входе пользователь имеет правильные данные. Но навсегда. Если сменить группу ещё раз, тов двух браузерах будут 2 разные группы и обе не верные.
Мало того, при этом в сессии сидят данные другого пользователя, под которым когда-то входил:
Раньше с пользователями особо не работал, могу чего-то сильно не понимать.
Буду благодарен за помощь!
На одном из сайтов столкнулся с проблемой: после выхода пользователя (через компонент Office или просто через процессор) сессия данного пользователя сохраняется в неизменном виде. Т.е., например, членство в группе:
[modx.user.117.userGroups] => Array ( [0] => 3 ), в которой данного пользователя уже нет. Выбить эту информацию в ДАННОМ браузере не удаётся больше никак (очистка кэша, перезагрузка прав, завершение сеансов, чистка куки).
Соответственно, в другом браузере при входе пользователь имеет правильные данные. Но навсегда. Если сменить группу ещё раз, тов двух браузерах будут 2 разные группы и обе не верные.
Мало того, при этом в сессии сидят данные другого пользователя, под которым когда-то входил:
[modx.user.74.resourceGroups]Не могу понять такого поведения. Как полностью «выгнать» пользователя? Как заставить систему обновить его данные при новой авторизации на сайте?Раньше с пользователями особо не работал, могу чего-то сильно не понимать.
Буду благодарен за помощь!
Комментарии: 7
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Перезагрузка данных пользователя решает мою проблему.
Не стоит ли применить данный метод при авторизации? Например в компоненте Office…
Проблема только в том, что изменения данных пользователя не применяются немедленно. Для этого нужно выйти и зайти снова (logout->login).
А чтобы сессии почаще обновлялись, нужно уменьшить её время жизни в настройках (параметр session_gc_maxlifetime). Вот еще тема о борьбе со старыми сессиями.
Однако, данный метод обновления данных пользователя ОЧЕНЬ потребуется тем, кто работает с группами клиентов. Например скидки. Часто клиенты постоянно висят на сайте и заставлять их выходить — не правильно и часто невозможно…
За ссыль — спасибо!
Когда запрашиваются группы пользователя, их список берется из сессии.
Алексей, попробуйте проверить, применяется ли изменение групп, если в сессии есть только один контекст.
Сейчас для ответа посмотрел modUser и процессор logout, обратил внимание на интересный момент — если после logout не остается контекстов, в которых пользователь залогинен, сессия должна уничтожиться. Если же есть еще контексты, то со списком групп ничего не произойдет.