Viber, Telegram
+38 066 7342127
Call me
+372 55916393

Обрыв сессии в админ-панели Prestashop

Лип 19, 2018 Блог
Обрыв сессии в админ-панели Prestashop

Что делать, если выбрасывает из админки на страницу авторизации? Решение проблемы.

Немного предыстории. Итак, дано:

Сайт на Prestashop 1.6, установлено ограничение доступа к админ-панели по ip-адресу, несколько пользователей.

Один из пользователей уезжает на длительный срок, соответственно нужно добавить его новый ip-адрес в список разрешенных. В процессе добавления выясняется, что интернет-провайдер дает динамические адреса. Ну и фиг бы с ним, добавляем разрешение по маске подсети (как это сделать рассказала тут)

Но… пользователь заходит в админку, а при попытке перехода по любой ссылке выкидывает на страницу авторизации. У всех остальных все работает, как часы.

Варианты решения:

if (isset(Context::getContext()->cookie->last_activity))
        {
            if ($this->context->cookie->last_activity + 900 < time())
                $this->context->employee->logout();
            else
                $this->context->cookie->last_activity = time();
        }

Все вышеперечисленные варианты в некоторых случаях помогают, но не в нашем. Попробовала все, а пользователя все равно выбрасывает. При этом у всех остальных все нормально. И с других устройств под этим пользователем все работает.

Но вы же помните, что ip-адрес динамический? 🙂

Проблема решена следующим образом.

Панель управления > Администрирование > Настройки
Проверять IP-адрес в cookies – ставим “Нет”

Prestashop из соображений безопасности хранит “свои” cookies для каждого ip-адреса. И при обновлении страницы проверяет адрес. Если он не тот – то  идите лесом. Т.е. на страницу авторизации. А с динамическим ip он каждый раз новый…

 

 

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *