Проблема logout

Добрый день/вечер/ночь!

На одном из сайтов столкнулся с проблемой: после выхода пользователя (через компонент Office или просто через процессор) сессия данного пользователя сохраняется в неизменном виде. Т.е., например, членство в группе:
[modx.user.117.userGroups] => Array ( [0] => 3 )
, в которой данного пользователя уже нет.
Выбить эту информацию в ДАННОМ браузере не удаётся больше никак (очистка кэша, перезагрузка прав, завершение сеансов, чистка куки).
Соответственно, в другом браузере при входе пользователь имеет правильные данные. Но навсегда. Если сменить группу ещё раз, тов двух браузерах будут 2 разные группы и обе не верные.

Мало того, при этом в сессии сидят данные другого пользователя, под которым когда-то входил:
[modx.user.74.resourceGroups]
Не могу понять такого поведения. Как полностью «выгнать» пользователя? Как заставить систему обновить его данные при новой авторизации на сайте?

Раньше с пользователями особо не работал, могу чего-то сильно не понимать.
Буду благодарен за помощь!
Алексей
25 апреля 2015, 21:19
modx.pro
1
2 266
0

Комментарии: 7

    Алексей
    26 апреля 2015, 19:22
    0
    Спасибо, изучаю…
      Алексей
      26 апреля 2015, 20:18
      0
      Сергей, ещё раз спасибо.
      Перезагрузка данных пользователя решает мою проблему.

      Не стоит ли применить данный метод при авторизации? Например в компоненте Office…
        Сергей Шлоков
        27 апреля 2015, 09:16
        +1
        Не думаю, что в этом есть острая необходимость. Ну висят эти данные в сессии, никому не мешают. Когда пользователь повторно логинится, то эти данные обновляются.
        Проблема только в том, что изменения данных пользователя не применяются немедленно. Для этого нужно выйти и зайти снова (logout->login).
        А чтобы сессии почаще обновлялись, нужно уменьшить её время жизни в настройках (параметр session_gc_maxlifetime). Вот еще тема о борьбе со старыми сессиями.
          Алексей
          28 апреля 2015, 12:14
          0
          Увы, в этом и проблема: при следующем логине не обновляются данные… В первом сообщении описал странное поведение. Возможно, только у меня на этом сайте, пока не на чем больше проверить. Вход через Office.

          Однако, данный метод обновления данных пользователя ОЧЕНЬ потребуется тем, кто работает с группами клиентов. Например скидки. Часто клиенты постоянно висят на сайте и заставлять их выходить — не правильно и часто невозможно…

          За ссыль — спасибо!
            Воеводский Михаил
            28 апреля 2015, 12:32
            0
            Разгадка здесь.
            Когда запрашиваются группы пользователя, их список берется из сессии.

            Алексей, попробуйте проверить, применяется ли изменение групп, если в сессии есть только один контекст.
            Сейчас для ответа посмотрел modUser и процессор logout, обратил внимание на интересный момент — если после logout не остается контекстов, в которых пользователь залогинен, сессия должна уничтожиться. Если же есть еще контексты, то со списком групп ничего не произойдет.
              Сергей Шлоков
              28 апреля 2015, 13:09
              0
              Часто клиенты постоянно висят на сайте и заставлять их выходить — не правильно и часто невозможно…
              Абсолютно согласен. Но решения из коробки нет. Это нужно делать своими силами. Ссылку на решение я давал выше. Это не окончательное решение, оно для понимания. Дальше уж сами в зависимости от задачи. Для того, чтобы понять куда это прикручивать советую глянуть в сторону hybridAuth. Там изменения срабатывают немедленно (работает плагин).
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        7