Форум русской поддержки Joomla!® CMS
06.12.2016, 00:39:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Как разлогинить админа при закрытии браузера?

 (Прочитано 203 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dmitry_stas
Профи
********

Репутация: +796/-4
Offline Offline

Сообщений: 7760



« : 01.05.2016, 16:53:09 »

Доброго всем.

Собственно, сабж. Нужно чтобы админы никогда не входили автоматически в админку после повторного открытия браузера. Все было просто до того момента, пока некоторые (иначе не назовешь) сволочи не забили на удаление сессионных кук...

Есть у кого идеи?
Записан
Victor333
Давно я тут
****

Репутация: +1/-0
Offline Offline

Сообщений: 265



« Ответ #1 : 01.05.2016, 21:56:12 »

Может жизнь сессии сделать минимальной?
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

Пол: Мужской
Сообщений: 6456



« Ответ #2 : 01.05.2016, 22:03:49 »

а есть какое-либо событие js, отлавливающие закрытие окна браузера? по событию аяксом отправлять токен сессии куда следует, а там по полученному токену сессию закрывать, не?
« Последнее редактирование: 01.05.2016, 22:07:13 от AlekVolsk » Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3582


« Ответ #3 : 01.05.2016, 22:12:04 »

а есть какое-либо событие js, отлавливающие закрытие окна браузера? по событию аяксом отправлять токен сессии куда следует, а там по полученному токену сессию закрывать, не?
Да, тоже посетила такая мысль, только на серверной стороне не закрывать сессию сразу, а сначала проверять, живо ли соединение.
Записан
dmitry_stas
Профи
********

Репутация: +796/-4
Offline Offline

Сообщений: 7760



« Ответ #4 : 01.05.2016, 22:12:46 »

Цитировать
Может жизнь сессии сделать минимальной?
Ну вот видимо да, придется делать что-то в этом направлении, иных решений не вижу. Время сессии делать минимальной не очень хочется, поскольку на сайте крутится и-магазин, и уменьшение времени сессии повлечет за собой проблемы для фронта (обнуление корзины в самый неподходящий момент, и т.п.), а туда лезть переделывать не охота. Придется видимо в админке логику менять, отслеживать время последнего обращения, и принудительно рубить сессию если больше например 70 секунд, и при этом пинговать каждые 60 секунд... Нагрузки конечно добавится, но фиг с ним для админки, придется пожертвовать...
Записан
dmitry_stas
Профи
********

Репутация: +796/-4
Offline Offline

Сообщений: 7760



« Ответ #5 : 01.05.2016, 22:14:05 »

Цитировать
какое-либо событие js, отлавливающие закрытие окна браузера
а как однозначно разделить закрытие и например обычный переход по внутренней ссылке, или даже просто f5 ? если есть этому решение, то даже не нужен доп.запрос, можно просто удалять сессионную куку. но я такого решения не знаю...
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

Пол: Мужской
Сообщений: 6456



« Ответ #6 : 01.05.2016, 22:17:49 »

имхо, поставить эксперимент: в шаблоне, в index.php добавить скрипт с вылетом алерта по событию onbeforeunload и посмотреть, в какие моменты оно срабатывает, это ж просто вроде как

а вот если это решение не подойдет, то тогда нужно будет думать дальше

если эксперимент состоится, то просьба отписаться о его результатах здесь, мож пригодится кому
« Последнее редактирование: 01.05.2016, 22:22:47 от AlekVolsk » Записан
dmitry_stas
Профи
********

Репутация: +796/-4
Offline Offline

Сообщений: 7760



« Ответ #7 : 01.05.2016, 22:22:23 »

дык зачем эксперимент ставить? я и так скажу Azn всегда срабатывает, когда страница собирается выгрузится. а выгрузится она может по самым разным причинам... закрытие вкладки, закрытие браузера, перезагрузка страницы, отправка формы, переход на новый адрес в строке url, переход по закладке, и т. д.
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

Пол: Мужской
Сообщений: 6456



« Ответ #8 : 01.05.2016, 22:24:33 »

есть событие onbeforeunload и onunload, у них разное поведение, последнее срабатывает даже при переходе по ссылке с таргет=бланк, тут действительно лучше проверить
Записан
dmitry_stas
Профи
********

Репутация: +796/-4
Offline Offline

Сообщений: 7760



« Ответ #9 : 01.05.2016, 22:39:08 »

Ну они разные, да, но основное отличие в том, что в момент onbeforeunload выгрузку страницы еще можно отменить, а в момент onunload уже нельзя. И еще плюс пару отличий, типа вызова в момент AJAX-запроса, и т.п. Но принципиальной разницы для нас нет, именно закрытие они не покажут, это будет любая выгрузка страницы.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet